contemporary languages in parallel computing

19
Contemporary Languages in Parallel Computing Raymond Hummel

Upload: alia

Post on 23-Feb-2016

49 views

Category:

Documents


0 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Contemporary Languages in  Parallel Computing

Contemporary Languages in Parallel ComputingRaymond Hummel

Page 2: Contemporary Languages in  Parallel Computing

Current Languages

Page 3: Contemporary Languages in  Parallel Computing

Standard Languages• Distributed Memory Multiprocessors

MPI

• Shared Memory Multiprocessors OpenMP pthreads

• Graphics Processing Units CUDA OpenCL

Page 4: Contemporary Languages in  Parallel Computing

MPI• Stands for: Message Passing Interface• Pros

Extremely Scalable Portable Can harness a multitude of hardware setups

• Cons Complicated Software Complicated Hardware Complicated Setup

Page 5: Contemporary Languages in  Parallel Computing

MPI

Page 6: Contemporary Languages in  Parallel Computing

OpenMP• Stands for: Open Multi-Processing• Pros

Incremental Parallelization Fairly Portable Simple Software

• Cons Limited Use-Case

Page 7: Contemporary Languages in  Parallel Computing

OpenMP

Page 8: Contemporary Languages in  Parallel Computing

POSIX Threads• Stands for: Portable Operating System Interface Threads• Pros

Portable Fine Grained Control

• Cons All-or-Nothing Complicated Software Limited Use-Case

Page 9: Contemporary Languages in  Parallel Computing

POSIX Threads

Page 10: Contemporary Languages in  Parallel Computing

CUDA• Stands for: Compute Unified Device Architecture• Pros

Manufacturer Support Low Level Hardware Access

• Cons Limited Use-Case Only Compatible with NVIDIA Hardware

Page 11: Contemporary Languages in  Parallel Computing

CUDA

Page 12: Contemporary Languages in  Parallel Computing

OpenCL• Stands for: Open Compute Language• Pros

Portability Heterogeneous Platform Works with All Major Manufacturers

• Cons Complicated Software Special Tuning Required

Page 13: Contemporary Languages in  Parallel Computing
Page 14: Contemporary Languages in  Parallel Computing

Future Languages

Page 15: Contemporary Languages in  Parallel Computing

Developing Languages• D • Rust• Harlan

Page 16: Contemporary Languages in  Parallel Computing

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

Page 17: Contemporary Languages in  Parallel Computing

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

Page 18: Contemporary Languages in  Parallel Computing

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.

Page 19: Contemporary Languages in  Parallel Computing

Questions?