标签: parallel-processing

MPI基础课程

嗨,我想学习在C中使用MPI.我在Windows 7上使用Codeblocks

我运行这个程序:

#include <stdio.h>
#include <mpi.h>

void main (int argc, char *argv[]) {
   int err;
   err = MPI_Init(&argc, &argv);
   printf("Hello world!\n");
   err = MPI_Finalize();
}
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,我在"mpi.h"收到错误.有没有办法添加库?

c windows parallel-processing mpi openmpi

3
推荐指数
1
解决办法
2932
查看次数

如何设置openMP

我想使用Eclipse IDE在Windows 7上使用C测试openMP.我无法找到设置openMP的任何特定步骤.你能帮助我吗?

c parallel-processing openmp

3
推荐指数
1
解决办法
1万
查看次数

为什么在设置最大迭代次数高于5,500,000时,用于计算Mandelbrot集的CUDA代码会失败?

我正在编写一个代码合成器,将高级模型转换为CUDA C代码.作为测试模型,我使用的是Mandelbrot生成器应用程序,它在GPGPU上并行执行每个XY坐标的迭代计数.图像为70x70像素,XY坐标范围为(-1,-1)到(1,1).为简单起见,应用程序需要一个大型float数组,其中每组3个元素包含X和Y坐标,后跟最大迭代次数.GPGPU上的每个线程都接收指向每个3组集开头的指针并计算迭代计数.

当最大迭代次数小于5,500,000时,合成的CUDA代码可以正常工作,但是当它高于此值时,输出就会变得完全虚假.为了说明,请参阅以下示例:

正常输出max_it设置为5,000,000时:

output[0]: 3
output[1]: 3
output[2]: 3
output[3]: 3
output[4]: 3
output[5]: 3
output[6]: 3
output[7]: 3
output[8]: 3
output[9]: 4
output[10]: 4
output[11]: 4
output[12]: 4
output[13]: 4
output[14]: 4
output[15]: 5
output[16]: 5
output[17]: 5
output[18]: 5
output[19]: 5
output[20]: 6
output[21]: 7
output[22]: 9
output[23]: 11
output[24]: 19
output[25]: 5000000
output[26]: 5000000
output[27]: 5000000
...
output[4878]: 2
output[4879]: 2
output[4880]: 2
output[4881]: 2
output[4882]: 2
output[4883]: 2
output[4884]: 2
output[4885]: …
Run Code Online (Sandbox Code Playgroud)

parallel-processing cuda gpgpu mandelbrot

3
推荐指数
1
解决办法
1062
查看次数

死锁免费与饥饿免费

是否会发生互斥算法不能保持死锁自由属性,但它能维持饥饿自由吗?

谢谢

algorithm parallel-processing concurrency synchronization deadlock

3
推荐指数
2
解决办法
4039
查看次数

对于阶乘(并行和正常),答案是不相同的

以下为什么不是相同的答案?

正常编码:

long sum = 0;

for (long i = 1; i <= 10; i++)
{
    long result = 1;

    for (long j = 1; j <= i; j++)
    {
        result = result*j;
    }
    sum = sum + result;
}
Run Code Online (Sandbox Code Playgroud)

并行编码:

long sum = 0;

Parallel.For(1, 10, delegate(int i)
    {
        long result = 1;

        Parallel.For(1, i, delegate(int j)
            {
                result = result*j;
            });

        sum = sum + result;
    });
Run Code Online (Sandbox Code Playgroud)

请告诉我正确的方法

for (long i = 1; i <= 5; i++)
        { …
Run Code Online (Sandbox Code Playgroud)

c# parallel-processing task-parallel-library

3
推荐指数
1
解决办法
184
查看次数

阻止任务?

我尝试在我的应用程序中使用这样的任务:

Task test;
test = Task.Factory.StartNew(() => general.Login(loginName, password));
MyTextBox.Text = "test text";
Run Code Online (Sandbox Code Playgroud)

它将是进行此调用的UI线程,我需要阻止它,直到工作线程从服务返回,但我不希望UI冻结.

我可以使用ContinueWith,但这将分割我的登录方法,这使得更难以遵循.我还需要主UI线程来运行此方法中的其余代码.

我该如何解决这个问题?

.net c# parallel-processing task async-ctp

3
推荐指数
1
解决办法
2430
查看次数

并行Visual Studio解决方案构建

我知道msbuild能够使用多个内核(见这里).但是VS2010的"集成"有点像黑客攻击,而且每个项目的构建输出都是"混合"的,因此很难阅读.

由于这个特定代码库的许多特性,我正在进行的解决方案在并行和顺序(在8核工作站上)上构建时至少快50%.

是否有人知道用于在多个内核上执行解决方案构建的替代构建工具,或许具有良好的UI?

.net msbuild parallel-processing visual-studio-2010 visual-studio

3
推荐指数
1
解决办法
2721
查看次数

并发:多线程环境中共享变量的C++ 11内存模型

如果在2个不同内核上的2个并发运行线程之间共享全局变量,即使对共享变量的访问受临界区控制,是否有可能出现数据争用或意外值?我需要声明变量atomic(volatile)吗?每个核心可能在其缓存中具有共享变量的值,并且当一个线程在缓存中写入其副本时,另一个核心上的另一个线程可能在线程1释放锁定后从其缓存中读取过时值.编译器是否为默认情况下由关键部分或互斥锁管理的变量生成易失性读/写代码?

c++ parallel-processing multithreading c++11

3
推荐指数
1
解决办法
984
查看次数

如何控制scala并行集合的并发性

从2.9开始,我们可以通过单一方法创建并行集合par.它既简单又简单,但如何控制并行集合的并发性?

parallel-processing scala

3
推荐指数
1
解决办法
401
查看次数

使用并行工具箱创建具有有限数量的工作人员(ThreadPool)的任务/作业池

我想使用并行计算工具箱来加速一组不依赖于彼此的函数调用.为了提高效率,我希望在我的一个函数完成执行后,使用定时器函数/回调函数来连续执行更多函数.我不知道哪些会更快,所以我不能将我的一组功能划分为几个池并将它们并行设置.

换句话说,我想要一些并行执行来继续从功能池中拉出来.

我现在设置的唯一方法str2fun是使用我使用的字符串单元格数组,有更好的方法吗?

欢迎提出问题.

parallel-processing matlab

3
推荐指数
1
解决办法
962
查看次数