Advantages:
-
Wide availability of efficient implementations
-
Support for modular design, code reuse
|
Disadvantages:
-
Low level ("parallel assembly code")
-
Less well-suited to shared-memory machines
|
Good for performance-critical codes with natural task modularity
|