本文介绍了华南理工大学计算机科学与工程学院何克晶教授在高性能计算与云计算课程中的第八讲内容,即共享存储编程。共享存储系统编程是指在多个处理器之间共享内存资源进行并行计算的编程模型。本文从共享存储系统编程的基本概念和规范入手,详细介绍了ANSI X3H5共享存储模型、POSIX线程模型和OpenMP模型,并探讨了程序的执行模型、如何表达并行性、同步和运行时环境变量等方面的内容。 共享存储系统编程是针对多处理器并行计算环境下的编程模型,它需要对程序的执行模型、并行性的表达、同步机制和运行时环境变量等进行规范和标准化。ANSI X3H5共享存储模型是在上世纪80年代中期针对共享存储并行计算机的发展而制定的,主要是针对具有专有指令驱动编程环境的系统。在此之前,还有更早的标准化成果,如PCF共享存储器并行Fortran,为后来的标准制定奠定了基础。 在共享存储系统编程规范中,还需要规定程序的执行模型,比如SPMD(单程序多数据)、SMP(对称多处理)等模型,以及如何表达并行性,比如DOACROSS、FORALL、PARALLEL和INDEPENDENT等。同时,为了保证并行计算的正确性和有效性,还需要规定同步机制,包括Lock、Barrier、Semaphore和Condition Variables等。此外,获得运行时环境变量也是编程规范中的一项重要内容,比如threadid和num of processes等。 在共享存储系统编程中,各种规范和标准化的作用不言而喻。它们不仅可以帮助程序员更好地理解和使用并行计算环境,还可以提高并行程序的可移植性和可维护性。通过规范化的编程模型,可以更好地利用多处理器系统的计算资源,提高程序的性能和效率。 总的来说,本文详细介绍了共享存储系统编程的规范和标准化内容,包括执行模型、并行性的表达、同步机制和运行时环境变量等方面。这些内容对于理解和应用共享存储系统编程都具有重要的指导意义,有助于提高并行程序的编写质量和性能表现。
剩余83页未读,继续阅读