2024年5月25日发(作者:)

装 订 处

基于pthread并行的矩阵乘法运算

一、pthread

POSIX线程通常又被叫做POSIX Threads,通常还会被缩写为Pthreads,作为一种

常用的完整API,不仅在创建上还是在操纵上面都是基于POSIX的线程标准。pthreads

通常会作为线程标标准的数据库,这个数据库能够实现POSIX ,同时能够很好的应用在

Unix系统上面,也能很好的应用在Linux和Solaris系统上面,同时与最新的微软系统也

能兼容,例如在Microsoft Windows上面也能实现线程的函数算法,通常在微软的线程

中能够实现的是第三方库的函数程序,pthreads-w32能够很好的利用其子系统实现最原

生的POSIX API,由于其能够兼容各个系统,因此能够实现多领域的应用。

二、案例简介

本案例中主要利用并行程序以及性能优化的得特点,基于pthread能够实现的并行

程序以及性能优化的特点进行程序设计,程序设计中会涉及到两个部分,第一个是利用

pthread编程工具的功能实现矩阵的乘法运算以及并行的算法,第二个是利用程序的执行

结果以及分析总结功能,能够对程序编写的过程以及算法能够实现程序的分析,最终实现

了并行的矩阵乘法运算的问题解决。案例中具体会涉及到四个方面的应用,第一个是利用

for 循环编写出串行的,并且能够实现矩阵乘法运算的程序,其次通过熟悉pthread,并

且能够利用pthread进行线程的创建以及管理,同时能够理解到其基本编写、运算和销毁

的程序以及方法,再者是通过pthread进行矩阵乘法运算的改造,这样能够实现并行程序

的运算。最后是利用数据的任务划分以及任务的调整,能够实现工作线程的数目,这样能

够实现程序的执行效率,这样能够实现对实验结果得分析和总结。

装 订 处

三、算法程序概述

(一)编程工具选取pthread

基于pthread 编程工具的,并行的矩阵乘法运算进行验证。

第一步创建新的线程

int pthread_create( pthread_t *thread,

const pthread_attr_t *attr,

void *(*func) (void *),

void *arg);

thread 代表线程 ID,其概念和线程中的pid差不多

attr 证明现成的属性,基本不纳入从程序算法中

func 代表创建的新的线程运行的开始的地方在函数的指针处

arg 代表着运行函数的各项指标的参数

如果返回的值是0,那么表示新创建的线程是成功的,如果是其他的值,那么表示编

号是错误的。