1 / 19

Contemporary Languages in Parallel Computing

Contemporary Languages in Parallel Computing. Raymond Hummel. Current Languages. Standard Languages. Distributed Memory Multiprocessors MPI Shared Memory Multiprocessors OpenMP pthreads Graphics Processing Units CUDA OpenCL. MPI. Stands for: Message Passing Interface Pros

alia
Télécharger la présentation

Contemporary Languages in Parallel Computing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Contemporary Languages in Parallel Computing Raymond Hummel

  2. Current Languages

  3. Standard Languages • Distributed Memory Multiprocessors • MPI • Shared Memory Multiprocessors • OpenMP • pthreads • Graphics Processing Units • CUDA • OpenCL

  4. MPI • Stands for: Message Passing Interface • Pros • Extremely Scalable • Portable • Can harness a multitude of hardware setups • Cons • Complicated Software • Complicated Hardware • Complicated Setup

  5. MPI

  6. OpenMP • Stands for: Open Multi-Processing • Pros • Incremental Parallelization • Fairly Portable • Simple Software • Cons • Limited Use-Case

  7. OpenMP

  8. POSIX Threads • Stands for: Portable Operating System Interface Threads • Pros • Portable • Fine Grained Control • Cons • All-or-Nothing • Complicated Software • Limited Use-Case

  9. POSIX Threads

  10. CUDA • Stands for: Compute Unified Device Architecture • Pros • Manufacturer Support • Low Level Hardware Access • Cons • Limited Use-Case • Only Compatible with NVIDIA Hardware

  11. CUDA

  12. OpenCL • Stands for: Open Compute Language • Pros • Portability • Heterogeneous Platform • Works with All Major Manufacturers • Cons • Complicated Software • Special Tuning Required

  13. Future Languages

  14. Developing Languages • D • Rust • Harlan

  15. D • Performance of Compiled Languages • Memory Safety • Expressiveness of Dynamic Languages • Includes a Concurrency Aware Type-System • Nearing Maturity

  16. Rust • Designed for creation of large Client-Server Programs on the Internet • Safety • Memory Layout • Concurrency • Still Major Changes Occurring

  17. Harlan • Experimental Language • Based on Scheme • Designed to take care of boilerplate for GPU Programming • Could be expanded to include automatic scheduling for both CPU and GPU, depending on available resources.

  18. Questions?

More Related