CodeBlocks 17.12配置Pthreads和OpenMP

配置Pthreads和OpenMP

安装平台

Windows10 64位系统
CodeBlocks 17.12(32位)
C/C++环境:MinGW

相关阅读

OpenMP实现求矩阵均值最大值以及最小值
OpenMP实现数据统计
Pthreads实现任务队列
Pthreads实现梯形积分
visual studio 2019配置Pthreads和OpenMP
CodeBlocks 17.12配置Pthreads和OpenMP

下载安装TDM-GCC编译器

下载地址:http://tdm-gcc.tdragon.net/download
下载完成打开安装,点击Create
在这里插入图片描述
选择MinGW/TDM(32-bit)
在这里插入图片描述
连续点击两次next,之后选择安装完整包,再点击install知道安装结束。
在这里插入图片描述

配置CodeBlocks

设置→编译器
在这里插入图片描述
可执行工具链→编译器的安装目录中选择上面TDM-GCC的安装目录
在这里插入图片描述
点击编译器设置选项卡下的其他编译器设置,添加“-fopenmp”
在这里插入图片描述
点击链接器设置选项卡,在其他链接器选项中添加“-lgomp -lpthread”,最后点击确定
在这里插入图片描述

测试代码一

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
int thread_count;
void* Hello(void* rank);
int main(int argc, char* argv[]) {
long i;
    pthread_t* thread_handles;
    thread_count = 5;
    thread_handles = malloc(thread_count*sizeof(pthread_t));
    for (i = 0; i < thread_count; i++)
        pthread_create(&thread_handles[i], NULL, Hello, (void*)i);
    printf("Hello from the main thread\n");
    for (i = 0; i < thread_count; i++)
        pthread_join(thread_handles[i], NULL);
    free(thread_handles);
    return 0;
}
void* Hello(void* rank) {
    long my_rank = (long) rank;
    printf("Hello from thread %ld of %d\n", my_rank, thread_count);
    return NULL;
}

注:如果出现C2440 “=”: 无法从“void *”转换为“pthread_t *”错误,只需将.cpp文件改为.c文件。

测试结果一

在这里插入图片描述
在这里插入图片描述

测试代码二

#include "stdio.h"
#include "omp.h"
int  main()
{
printf("Hello from serial.\n");
printf("Thread number = % d\n",omp_get_thread_num());
#pragma omp parallel
{
printf("Hello from parallel.Thread   number = % d\n", omp_get_thread_num());
}
printf("Hello from serial again.\n");
return 0;
}

测试结果二

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值