首页 文章
  • 0 votes
     answers
     views

    让OpenMP 4.0在eclipse中运行的问题(Linux Mint)

    eclipse中的错误消息:[我的程序]:/usr/lib/x86_64-linux-gnu/libgomp.so.1:找不到版本`GOMP_4.0'([我的程序]要求) 从其他帖子我读到需要更新版本的gcc来启用OpenMP 4.0支持(是的,我真的需要它)所以我在我的Linux Mint机器上下载并构建了gcc 6.1 . gcc --version现在吐出6.1 . 安装后,"#...
  • -1 votes
     answers
     views

    OpenMP - sections指令; Linux比Windows慢

    我有一个简单的代码准备测试 . 这是代码中最重要的部分: #pragma omp parallel sections { #pragma omp section { for (int j=0;j<100000;j++) for (int i=0;i<1000;i++) a1[i]=1; } #pragma omp section { for (int j=0;j&...
  • 5 votes
     answers
     views

    线程间的数字差异(cygwin上的openMP)

    我希望以下fortran代码为所有线程生成相同的结果 . 我正在使用最新的cygwin处理32位Windows 7 . Gfortran版本是4.8.3 program strange use omp_lib implicit none real(kind=8) :: X(3) real(kind=8) :: R real(kind=8) :: R3 ...
  • 0 votes
     answers
     views

    C - 未引用的Omp功能

    我'm working on ' C'使用Omp进行学习的并行编程 . 在我的模块 array-sum-parallel.c 中,我首先按要求包含文件hpc.h,该文件位于我的C文件的同一文件夹中,并包含以下代码: /*This header file provides a function double hpc_gettime() that returns the elaps ed time...
  • 0 votes
     answers
     views

    为什么使用OpenMP会使代码运行速度变慢?

    我有以下代码使用OMP来并行化monte carlo方法 . 我的问题是为什么代码的串行版本(monte_carlo_serial)比并行版本(monte_carlo_parallel)运行得快得多 . 我在具有32个内核的计算机上运行代码,并将以下结果打印到控制台: -bash-4.1 $ gcc -fopenmp hello.c;-bash-4.1 $ ./a.outPi(Serial):3....
  • 8 votes
     answers
     views

    如何同时使用omp parallel和omp simd?

    我想测试 #pragma omp parallel for 和 #pragma omp simd 以获得简单的矩阵添加程序 . 当我分别使用它们时,我没有错误,看起来很好 . 但是,我想测试使用它们可以获得多少性能 . 如果我在外循环之前使用 #pragma omp parallel for 而在内循环之前使用 #pragma omp simd 我也没有错误 . 当我在外部循环之前使用它们时发生错...
  • 0 votes
     answers
     views

    与Intel MIC之间的内存传输开销

    我正在观察一个奇怪的行为,并想知道它是否与英特尔至强有关 . 我有一个小例子代码基本上是每个人都知道的矩阵乘法(三个嵌套for循环) . 我使用OpenMP 4.0 target pragma将计算卸载到Intel MIC,并使用 map(to:A,B) map(tofrom:C) 映射三个矩阵 . 现在,我观察的是对于小矩阵,例如1024x1024内存传输耗时极长 . 与本机版本(相同的...
  • 0 votes
     answers
     views

    OMP并行减少

    我正在尝试编写一个k-means聚类类 . 我想让我的功能并行 . void kMeans::findNearestCluster() { short closest; int moves = 0; #pragma omp parallel for reduction(+:moves) for(int i = 0; i < n; i++) { ...
  • 5 votes
     answers
     views

    OpenMP和核心/线程

    我的CPU是Core i3 330M,有2个内核和4个线程 . 当我在终端中执行命令cat /proc/cpuinfo 时,就好像我有4个CPUS . 当我使用OpenMP函数 get_omp_num_procs() 时,我也得到4 . 现在我有一个标准的C矢量类,我的意思是一个不使用表达式模板的固定大小的双数组类 . 我仔细并行化了我 class 的所有方法,并获得了“预期”的加速 . 问题是...
  • 2 votes
     answers
     views

    C OpenMP代码意外地在cygwin上运行,但正如Linux上预期的那样

    int a = 0; #pragma omp parallel private(a) { a++; printf("%d", a); } 有了4个内核,人们可以期待这段代码打印1111,它可以在我的Linux机器上打印 . 但是,在我的Windows机器上运行cygwin中的相同代码(相同的标志等)会产生11117(不确定1的数量) . 7总是在那里,尝试相同...
  • 1 votes
     answers
     views

    Thrust:从CUDA切换到OpenMP时编译器错误

    我正在学习一些为CUDA(v6.5)成功编译的程序 . 但是,当我切换到OpenMP时,我收到以下错误: 错误9错误C2668:'thrust :: raw_reference_cast':模糊调用重载函数C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v6.5 \ include \ thrust \ detail \ fun...
  • 1 votes
     answers
     views

    OpenMP将任务卸载到Intel MIC

    我试图将我的程序中昂贵的循环卸载到Intel MIC . 代码的一部分是: !$omp target map(to:coor,sigma_const,clase) map(tofrom:ener1,ener2) !$omp parallel private(i,j,fdummy1,k,l,fdummy2,fdummy3,fdummy4,fdummy5,dist) !$omp do reductio...
  • 0 votes
     answers
     views

    OpenMP 4.0的卸载指令

    我正在测试一个带有三个Intel Xeon Phi卡的节点 . 我的想法是使用OpenMP 4.0指令卸载协处理器上的任务 . 代码如下(取自http://goo.gl/9Ztq0e): /*************************************************************************************************** * FIL...
  • 3 votes
     answers
     views

    Xeon Phi上的OpenCL:2D卷积体验 - OpenCL与OpenMP

    在opnecl中使用2D卷积进行基准测试的Xeon Phi的性能似乎比使用编译器启用的矢量化的openmp实现要好得多 . Openmp版本以phi native模式运行,并且定时仅测量计算部分:For-loop . 对于opencl实现,时序也仅用于内核计算:不包括数据传输 . OpenMp-enbaled版本使用2,4,60,120,240个线程进行了测试 . - 240个线程为 ba...
  • 8 votes
     answers
     views

    如何使用GCC 5.1和OpenMP将工作卸载到Xeon Phi

    背景 我们一直试图使用新的GCC 5.1版本将OpenMP块卸载到Intel MIC(即Xeon Phi),但未成功 . 在GCC Offloading页面之后,我们将 build.sh 脚本放在一起,为"intelmic"和主机编译器构建"accel"目标编译器 . 编译似乎成功完成 . 然后使用 env.sh 脚本,我们尝试编译下面列出的简单 hello...
  • 1 votes
     answers
     views

    OpenMP目标(更新)到

    我正在使用配备Intel Xeon Phi coprorcessors的平台上的OpenMP 4.5加速器模型 . 我想用CPU MIC来解决问题 . 我需要使用类似于Intel Offload的机制 . 我想立即将数据从缓冲区A从卡转移到缓冲区B.示例在下面的代码中给出 . #pragma offload target(mic : 0) \ out(A[0:size] : REUSE in...
  • 1 votes
     answers
     views

    ICC编译器 - 错误:并行循环条件不测试循环控制变量

    我试图在英特尔MIC(Xeon Phi)卡上卸载调用后并行化我的C / OpenMP代码的“for循环” . 我正在使用“#pragma omp parallel for”,当我使用整数变量作为“循环控制变量”时,它编译得很好 . 在我的代码中我使用浮点数组作为“循环控制变量”然后我得到错误“并行循环条件不测试循环控制变量” . 代码没有错误: #define MAX_DIMENSIONS 10...
  • 1 votes
     answers
     views

    使用gcc进行Intel xeon phi编程

    我有点想要获得intel xeon phi协处理器,因为有一个型号似乎以230美元的价格运行 . 我有两个问题 . 我可以使用gcc和openmp充分利用这些功能,还是需要intel编译器 . 还有什么关于这个模型让它如此便宜? http://www.amazon.com/Intel-BC31S1P-Xeon-31S1P-Coprocessor/dp/B00OMCB4JI/ref=sr_1_2?i...
  • 6 votes
     answers
     views

    使用Xeon Phi Knights Landing获得密集矩阵乘法的最大FLOPS

    我最近开始使用Xeon Phi Knights Landing(KNL)7250计算机(http://ark.intel.com/products/94035/Intel-Xeon-Phi-Processor-7250-16GB-1_40-GHz-68-core) . 它有68个核心和AVX 512.基本频率为1.4 GHz,Turbo频率为1.6 GHz . 我不知道所有内核的turbo频率是多...
  • 0 votes
     answers
     views

    Xeon-Phi从主机openMP并行区域异步卸载

    我在主机openMP代码中使用intel的卸载编译指示 . 代码如下所示 int s1 = f(a,b,c); #prama offload singnal(s1) in (...) out(x:len) { for (int i = 0; i < len; ++i) { x[i] = ... } } #pragma omp parallel...
  • 0 votes
     answers
     views

    具有Intel MIC卸载的异构OpenMP并行循环

    我正在研究一个代码,其中包含一个包含许多迭代的循环(~10 ^ 6-10 ^ 7),其中一个数组(比方说,'myresult')是通过大量贡献的求和来计算的 . 在使用OpenMP的Fortran 90中,这将看起来像: !$omp parallel do !$omp& reduction(+:myresult) do i=1,N myresult[i] = myresult[i] + ...
  • 5 votes
     answers
     views

    Xeon Phi协处理器与Xeon Phi主机处理器?

    主处理器和协处理器有什么区别?特别是Xeon Phi协处理器和Xeon Phi主机处理器? 我在这些机器上有一些性能结果(正在运行扩散方程的并行化OpenMP代码),这表明当相同数量的线程工作时,主处理器的工作速度要快得多 . 我想知道不同之处并将它们与我的结果联系起来 .
  • 18 votes
     answers
     views

    如何使用g编译openmp

    我有一个关于openmp编译的问题 . 如下代码: #include <iostream> #include <pthread.h> #include <omp.h> #include <semaphore.h> #include <stack> using namespace std; sem_t empty,full; stack&...
  • 0 votes
     answers
     views

    使用OpenMP在C中并行化基数排序

    您如何在C语言中使用OpenMP并行化基数排序算法? 我的程序是对典型基数排序的修改:它根据数字的二进制表示对整数数组进行排序,在这里你可以改变应该被解释为一位数的位数(基本上是用于根据整数的大小来获得不同的运行时间 . 我有一个基数函数,它有三个参数: // n is the number of elements in data // b is number of bits that shoul...
  • 0 votes
     answers
     views

    用于检测非直方图中的循环的最佳并行算法

    我想检测无向图中的循环,以便找到最小生成树(特别是我想使用Kruskal算法) . 由于我想并行化代码,我想知道哪种算法是最好的,深度优先搜索union-find算法?谢谢你的任何建议 .
  • 0 votes
     answers
     views

    矩阵缩减,OpenMP中的自定义缩减运算符

    我必须使用以下算法(这里基于armadillo),使用两个基于不同库的矩阵的for循环组装矩阵: inline void loop_over_matrix_serial(const size_t &size, arma::mat &matrix) { for (size_t i = 0; i < size; ++i) for (size_t j = 0...
  • 26 votes
     answers
     views

    最小,最大,中位数,平均值的OpenMp C算法[关闭]

    我正在谷歌搜索一个提供一些简单的OpenMp算法的页面 . 可能有一个例子来计算巨大数据阵列的最小值,最大值,中值,平均值,但我无法找到它 . 至少我通常会尝试将数组划分为每个核心的一个块,然后进行一些边界计算以获得完整数组的结果 . 我只是不想重新发明轮子 . 补充说明:我知道有成千上万的例子可以简单地减少 . 例如计算PI . const int num_steps = 100000; d...
  • 7 votes
     answers
     views

    如何在Matlab的MEX编译过程中进行链接

    我写了一个以下形式的程序: #include "stuff_I_need.h" int main(){ construct_array(); // uses OpenMP pragma's print_array(); return(0); } 使用以下命令正确编译,链接和运行: `gcc44 -I/home/matteson/sundials/include/ m...
  • 0 votes
     answers
     views

    NCurses不恢复终端行为

    你好亲爱的公报, 我正在为我正在开发的并行软件创建终端动画状态报告 . 我正在使用NCurses . 我遇到了与恢复终端标准行为有关的问题 . 在运行我的软件之后,终端只有24行,无论我调用endwin()还是不调用 . 这里是简化的代码: int size=10; initscr(); refresh(); while(KeepAlive){ int j=1; mvpri...
  • 1 votes
     answers
     views

    用于可分配数组的Openmp并行工作共享

    我想在Fortran 90中对数组进行元素计算,同时将我的代码与openmp并行化 . 我现在有以下代码: program test implicit none integer,parameter :: n=50 integer :: i integer(8) :: t1,t2,freq real(8) :: seq(n),r(n,n,n,n) real(8),dimension(n,n,n,n...

热门问题