关于解决并行化问题的一般问题
我有一个关于 C 语言并行算法编程的一般性问题。假设我们的任务是使用 MPI 和/或 OpenMP 实现一些矩阵算法。在某些情况下,例如 OpenMP 或 MPI 中的错…
为什么 OpenMP 在这种情况下很慢?
我试图理解为什么 OpenMP 会像下面的示例那样工作。 #include #include #include #include void AddVectors (std::vector& v1, std::vector& v2) { si…
使用 OpenMP 处理程序中的 GUI 线程
我有一个 C++ 程序,它使用 OpenMP 并行执行一些冗长的计算。现在该程序还必须响应用户输入并更新一些图形。到目前为止,我一直从主/GUI 线程开始计算…
openmp 随机只使用一个核心
我使用的是 Ubuntu 10.04,gcc 版本 4.4.3。我正在使用 omp.h 和 g++ 参数 -fopenmp 编译 C++ 代码。大多数时候一切都按预期进行。我有带超线程的四核…
CUDA 4.0 RC - 每个 GPU 有多个主机线程 - cudaStreamQuery 和 cudaStreamSynchronize 行为
我编写了一段代码,每个 GPU 使用许多主机 (OpenMP) 线程。每个线程都有自己的 CUDA 流来排序其请求。它看起来与下面的代码非常相似: #pragma omp pa…
openMP 中无限大小堆栈的行为
我很好奇 openmp 如何处理(或不按照实际情况)无限的堆栈大小: [alm475@compute-0-139 ~]$ ulimit -a core file size (blocks, -c) 0 data seg size…
OpenMP C 并行化算法
在《使用 OpenMP》一书中,有一个 C 语言内存访问错误的示例,我认为这是我尝试并行高斯算法的主要问题。 这个例子看起来像这样: k= 0 ; for( int j=…
#pragma omplush 使线程之间交换数据
您好,编写了一个非常简单的示例,介绍如何在生产者-> 中使用 omplush 交换数据。消费者方式,在线程中我发现了一个有趣的行为。 int a=-1; int flag=…