This is kind of a wide-open question. Basic optimizations include:
- Create attribute relationships whenever possible
- Make attribute relationships rigid whenever possible
- Move simple calculations into the DSV if possible
- Create aggregations
- Use the Usage Based Optimization wizard to design better aggregations based on actual usage
- Use of Scope instead of nested IIF
- Changing CoordinatorExecutionMode server property
- Spreading partitions across drives/drive controllers
There are many others. Check out the Analysis Services 2005 (or 2008) Performance Guide.