乡 曙光 计算,改变您的现在 DAWNING 共享存储编程标准与特点 共享存储器编程标准 Pthreads(线程标准) X3H5(线程标准) OpenMP(最常用的共享存储并行编程方式,是我们讨论的重点 共享存储器编程特点 显式多线程库调用( Pthreads) 编译制导语句, OpenMP等 语言 C, Fortran77, Fortran90/95, C++ 2006年4月 共享存储编程 6/108
2006年4月 共享存储编程 6/108 共享存储编程标准与特点 共享存储器编程标准 Pthreads(线程标准) X3H5(线程标准) OpenMP(最常用的共享存储并行编程方式,是我们讨论的重点.) 共享存储器编程特点 显式多线程库调用.(Pthreads). 编译制导语句,OpenMP等. 语言 C,Fortran77,Fortran90/95,C++…
乡 曙光 计算,改变您的现在 DAWNING 并行编程标准 线程库标准( Thread library) Win 32 AP POSIX threads线程模型 X3H5:概念性线程模型 编译制导( Compiler Directives OpenMP-portable shared memory parallelism 2006年4月 共享存储编程 7/108
2006年4月 共享存储编程 7/108 并行编程标准 线程库标准(Thread Library) – Win32 API. – POSIX threads线程模型. – X3H5:概念性线程模型 编译制导(Compiler Directives) – OpenMP - portable shared memory parallelism
乡 曙光 计算,改变您的现在 DAWNING 为什么流行多线程编程? 线程:在进程的内部执行的指令序列 相对于进程,线程开销小: 创建一个线程的时间大约是建立一个新进程的130。如在Sun475工作 上站上,创建一个非绑定线程约为52微秒,而ork0次的时间为 1700微秒。 线程同步时间约是进程同步时间的13 线程与RPc相结合,发挥多处理机的处理能力 发挥多处理器的处理能力 开发程序的并发性,改善程序的结构 容易实现数据共享:由于线程共用内存地址,因此可实现数据共享 例:一高性能Web服务器可为每一打开链接的浏览器分配一个线程,所 有线程即可共用同一 cache来访问网站的热点话题 统一的标准: 以前各开发商提供互不兼容的线程库,结果导致多线程程序不能很好地 移值。自1995年的POSX线程标准实施之后,极大地促进多线程编程的」 统一。各系统都支持 Pthreads,如 Linux、SUN、 IBM AIX等。 2006年4月 共享存储编程 8/108
2006年4月 共享存储编程 8/108 为什么流行多线程编程? 线程:在进程的内部执行的指令序列. 相对于进程,线程开销小: 创建一个线程的时间大约是建立一个新进程的1/30。如在Sun4/75工作 上站上,创建一个非绑定线程约为52微秒,而fork()一次的时间为 1700微秒。 线程同步时间约是进程同步时间的1/3. 线程与RPC相结合,发挥多处理机的处理能力; 发挥多处理器的处理能力; 开发程序的并发性,改善程序的结构. 容易实现数据共享:由于线程共用内存地址,因此可实现数据共享 例:一高性能Web服务器可为每一打开链接的浏览器分配一个线程,所 有线程即可共用同一cache来访问网站的热点话题 统一的标准: 以前各开发商提供互不兼容的线程库,结果导致多线程程序不能很好地 移值。自1995年的POSIX线程标准实施之后,极大地促进多线程编程的 统一。各系统都支持Pthreads,如Linux、SUN、IBM AIX等
乡 曙光 计算,改变您的现在 DAWNI Pthreads线程模型 posX10034a小组研究多线程编程标准.当标准完成后,大多数支 持多线程的系统都支持PoSX接口很好的改善了多线程编程的可移 植性 EEE Portable Operating System Interface, POSIX, 10031-1995标准:PoSX线程模型pt/ reads 2006年4月 共享存储编程 9/108
2006年4月 共享存储编程 9/108 Pthreads线程模型 POSIX1003.4a小组研究多线程编程标准. 当标准完成后,大多数支 持多线程的系统都支持POSIX接口.很好的改善了多线程编程的可移 植性. IEEE Portable Operating System Interface, POSIX, 1003.1-1995标准:POSIX线程模型:pthreads
乡 曙光 计算,改变您的现在 DAWNING 线程管理( Pthread为例 创建 pthread_create 终止: pthread_exit 汇合 pthread_ join 分离 pthread_detach 线程属性初始化: pthread_attr_init 唯一执行 pthread_once 2006年4月 共享存储编程 10/108
2006年4月 共享存储编程 10/108 线程管理(Pthread为例) 创建:pthread_create 终止:pthread_exit 汇合:pthread_join 分离:pthread_detach 线程属性初始化:pthread_attr_init 唯一执行:pthread_once