猿代码 — 科研/AI模型/高性能计算
0

使用OpenMP实现的Helloworld

摘要: OpenMP实现的Helloworld程序,其中每个线程会打印出当前线程号和线程总数,并输出程序执行的时间


下面是使用OpenMP实现的Helloworld程序,其中每个线程会打印出当前线程号和线程总数,并输出程序执行的时间:

```c
#include <stdio.h>
#include <omp.h>
#include <time.h>

int main() {
    int num_threads, thread_id;
    double start_time, end_time;
    
    // 获取开始时间
    start_time = omp_get_wtime();
    
    // 设置并行区域,使用多线程打印Hello World
    #pragma omp parallel private(thread_id) shared(num_threads)
    {
        // 获取线程总数
        num_threads = omp_get_num_threads();
        
        // 获取当前线程号
        thread_id = omp_get_thread_num();
        
        // 打印Hello World和线程信息
        printf("Hello World, This is thread %d out of %d\n", thread_id, num_threads);
    }
    
    // 获取结束时间
    end_time = omp_get_wtime();
    
    // 计算程序执行时间
    double execution_time = end_time - start_time;
    
    // 打印程序执行时间
    printf("Execution time: %f seconds\n", execution_time);
    
    return 0;
}
```

该程序使用`#pragma omp parallel`指令将代码块设置为并行区域,使得多个线程可以并行执行其中的代码。通过`omp_get_num_threads()`函数获取线程总数,`omp_get_thread_num()`函数获取当前线程号。每个线程会打印出当前线程号和线程总数。使用`omp_get_wtime()`函数获取开始和结束时间,计算程序执行时间并输出。

说点什么...

已有0条评论

最新评论...

本文作者
2023-6-28 09:47
  • 0
    粉丝
  • 223
    阅读
  • 0
    回复
资讯幻灯片
热门评论
热门专题
排行榜
Copyright   ©2015-2023   猿代码-超算人才智造局 高性能计算|并行计算|人工智能      ( 京ICP备2021026424号-2 )