- simple API
- modularity
- efficiency
- support for multiple simultaneous networks
- client/server model
- supports discontiguous memory regions
- hooks for obtaining information for scheduling
- message based, reliable, ordered delivery
- misc. features tailored to parallel I/O