资源简介
读入第一个参数为线程数,第二个参数为N,积分法计算pi,C+pthread实现,附结果比较表

代码片段和文件信息
#include
#include
#include
#include
#include
#define max_threads 512
double local_res[max_threads];
int num_threads num_per_thread N;
void *compute_pi(void *id) {
int index = *((int *)id);
int begin = index * num_per_thread;
int end;
if(index == num_threads - 1)
end = N;
else
end = begin + num_per_thread - 1;
int i;
double lc = 0.0;
for(i = begin;i <= end;i++){
double tmp = (i + 0.5) / N;
tmp = tmp * tmp + 1;
tmp = 4 / (N * tmp);
lc += tmp;
}
local_res[index] = lc;
}
int main(int argcchar *argv[]) {
pthread_t p_threads[max_threads];
double result = 0.0;
int i;
int *tmp;
struct timeval tv;
double time_start time_end;
num_threads = atoi(argv[1]);
N = atoi(argv[2]);
num_per_thread = N / num_threads;
gettimeofday(&tv NULL);
time_start = (double)tv.tv_sec + (double)tv.tv_usec / 1000000.0;
for(i = 0;i < num_threads;i++) {
tmp = (int *)malloc(sizeof(int));
*tmp = i;
pthread_create(&p_threads[i] NULL compute_pi (void *)tmp);
}
for(i= 0;i < num_threads;i++) {
pthread_join(p_threads[i] NULL);
result += local_res[i];
}
gettimeofday(&tv NULL);
time_end = (double)tv.tv_sec + (double)tv.tv_usec / 1000000.0;
printf(“Computed PI = %lf\n“ result);
printf(“Time Consuming: %lf\n“ time_end - time_start);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1389 2009-12-12 23:10 线程ipc\pi.c
文件 22528 2009-12-12 22:59 线程ipc\res.xls
目录 0 2009-12-12 21:00 线程ipc
----------- --------- ---------- ----- ----
23917 3
- 上一篇:树莓派串口通信
- 下一篇:以太网ENC28J60 tcp udp
相关资源
- pthreads-w32-2-9-1-release.zip
- 编写简单的RMI程序 多线程web 服务器
- 西安电子科技大学 并行计算 霍红卫
- 多线程生产者消费者模式
- 多线程实例:桌面智能弹球小游戏
- WPF多线程演示
- 易语言:多线程传多变量的最稳定方
- Microsoft Windows Services for UNIX 3.5 版中的
- 排队买票多线程问题
- 基于Spark的PSO并行计算
- 强大的完善的 活动抽奖系统适合各单
- 整理最全资料:并行计算大作业:矩
- 十字路口红绿灯交通情况模拟
- Qt 多线程连接数据库——数据库
- 一种并行计算通信优化策略
- 易语言多线程端口扫描源码
- POSIX多线程程序设计中文版源码
- 易语言md5定向爆破源码
- 多线程扫描工具
- 有限元结构分析并行计算.pdf
- Delphi.High.Performance.Applications.Concurren
- 高性能并行计算.zip
- Qt5的多线程小程序,实现按钮开关线
- 控制台串口通信程序
- R并行编程实战
- POSIX多线程程序设计中文版pdf
- 使用多线程及图像分块实现图像处理
- 图像处理中使用多线程及图像分块实
- p2p文件共享系统 含代码和文档
- 并行计算——结构·算法·编程修订版
评论
共有 条评论