并行编程语言

多核CPU与云计算时代,并行计算势不可挡,本文该要介绍并行编程的基本库和方法论,还有相关并行计算语言概要。
展开查看详情

1.Parallel programming languages Hossein Bastan Isfahan University of Technology 1 /23

2.Parallel programming tools Shared memory programming tools OpenMP POSIX Threads Distributed memory programming tools MPI Parallel P rogramming L anguages Linda Erlang Unified parallel C Charm++ OpenCL outline 2 /23

3.Shared memory programming OpenMP POSIX Thread 3 /23

4.Shared memory model 4 /23

5.an API C, C++, and Fortran OpenMP is managed by the nonprofit technology consortium OpenMP Architecture Review Board ( OpenMP ARB) AMD, IBM, Intel, Cray, HP, Fujitsu, Nvidia , NEC, Microsoft, Texas Instruments, Oracle Corporation, and more OpenMP uses a portable, scalable model simple and flexible interface standard desktop computer to the supercomputer OpenMP 5 /23

6.OpenMP 6 /23

7.OpenMP 7 /23

8.POSIX standard for threads The standard, POSIX.1c, Threads extensions (IEEE Std 1003.1c-1995 ) an API for creating and manipulating threads . Pthreads defines a set of C programming language types, functions and constants implemented with a pthread.h There are around 100 Pthreads procedures, all prefixed " pthread _" POSIX Threads 8 /23

9.Distributed memory programming Message Passing Interface (MPI) 9 /23

10.Distributed memory programming Message Passing Interface (MPI) 9 /23

11.MPI imlementation MPICH MPICH-G2 OpenMPI MPI.net , Pure MPI.net MPJ Express MatlabMPI , MPITB MPI for Python Message Passing Interface 11 /23

12.Parallel Programming Linda ErLang Unified Parallel C (UPC) Charm++ OpenCL Cilk 12 /23

13.a model of coordination and communication among several parallel processes operating upon objects stored in and retrieved from shared, virtual, associative memory developed by David Gelernter and Nicholas Carriero at Yale University implemented as a “coordination language” Linda 13 /23

14.Tuple Tuple space Linda model requires four operations that individual workers perform on the tuples and the tuplespace In Rd out eval Linda 14 /23

15.a general-purpose concurrent, garbage-collected programming language and runtime system first version was developed by Joe Armstrong in 1986 a proprietary language within Ericsson released as open source in 1998 In 2006, native symmetric multiprocessing support was added to the runtime system and virtual machine ErLang 15 /23

16.designed by Ericsson to support distributed, fault-tolerant, soft-real-time, non-stop applications Erlang provides language-level features all concurrency is explicit in Erlang , processes communicate using message passing instead of shared variables, which removes the need for locks ErLang 16 /23

17.an extension of the C programming language designed for high-performance computing on large-scale parallel machines The programmer is presented with a single shared, partitioned address space Unified Parallel C 17 /23

18.The programmer is presented a single shared partitioned address space variables may be directly read and written by any processor each variable is physically associated with a single processor Unified Parallel C 18 /23

19.a parallel object-oriented programming language based on C++ and developed in the Parallel Programming Laboratory at the University of Illinois Programs written in Charm ++ decomposed into a number of cooperating message-driven objects called chares designed with the goal of enhancing programmer productivity good performance on a wide variety of underlying hardware platforms Charm++ 19 /23

20.a framework for writing programs that execute across heterogeneous platforms OpenCL includes a language (based on C99) for writing kernels APIs that are used to define and then control the platforms was initially developed by Apple Inc refined into an initial proposal in collaboration with technical teams at AMD, IBM, Intel, and Nvidia an open standard maintained by the non-profit technology consortium Khronos Group OpenCL 20 /23

21.general-purpose programming language designed for multithreaded parallel computing has been developed since 1994 at the MIT Laboratory for Computer Science based on ANSI C July 2009, Intel Corporation acquired Cilk Arts, the Cilk ++ technology and the Cilk trademark In 2010, Intel released a commercial implementation in its compilers combined with some data parallel constructs with the name Intel Cilk Plus Cilk 21 /23

22.Shared memory programming tools OpenMP POSIX Threads Distributed memory programming tools MPI Parallel Programming Languages Linda Erlang Unified parallel C Charm++ OpenCL summary 22 /23

23. http://en.wikipedia.org http://openmp.org/wp/ https://computing.llnl.gov http://www.hpclab.niu.edu/mpi http://www.open-mpi.org/ http://mpj-express.org/ http://mpi4py.scipy.org http://upc.gwu.edu http ://charm.cs.uiuc.edu http://www.khronos.org refrences 23 /23

24.