小编Igo*_*sky的帖子

MPI比MapReduce更适合哪些场景?

据我所知,MPI让我能够更好地控制集群中不同节点的通信方式.

在MapReduce/Hadoop中,每个节点进行一些计算,与其他节点交换数据,然后整理其结果分区.看起来很简单,但由于您可以迭代这个过程,甚至像K-means或PageRank这样的算法也能很好地适应模型.在具有调度位置的分布式文件系统上,性能显然很好.相比之下,MPI让我可以明确控制节点如何相互发送消息.

任何人都可以描述一个集群编程场景,其中更通用的MPI模型比简单的MapReduce模型更明显吗?

parallel-processing distributed mapreduce mpi

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

SSE2整数溢出检查

当使用SSE2指令,如PADDD(即_mm_add_epi32内在),有没有办法来检查任何操作是否溢出?

我想也许MXCSR控制寄存器上的标志可能在溢出后设置,但我没有看到这种情况发生.例如,_mm_getcsr()在以下两种情况下打印相同的值(8064):

#include <iostream>
#include <emmintrin.h>

using namespace std;

void main()
{
    __m128i a = _mm_set_epi32(1, 0, 0, 0);
    __m128i b = _mm_add_epi32(a, a);
    cout << "MXCSR:  " << _mm_getcsr() << endl;
    cout << "Result: " << b.m128i_i32[3] << endl;

    __m128i c = _mm_set_epi32((1<<31)-1, 3, 2, 1);
    __m128i d = _mm_add_epi32(c, c);
    cout << "MXCSR:  " << _mm_getcsr() << endl;
    cout << "Result: " << d.m128i_i32[3] << endl;
}
Run Code Online (Sandbox Code Playgroud)

有没有其他方法来检查SSE2的溢出?

c++ x86 sse simd sse2

19
推荐指数
3
解决办法
3252
查看次数

阻止C#编译器优化的'volatile'示例?

根据我的理解,C#中的'volatile'修饰符有两个效果:

  1. 根据需要为目标处理器插入栅栏
  2. 防止某些编译器优化

在x86/amd64上,(1)无关紧要.这些处理器不需要用于易失性语义的围栏.(虽然ia64不同.)

所以,我们归结为(2).但是,对于我尝试过的例子,volatile对jit-ted程序集没有任何影响.

我的问题是:你能举一个C#代码示例的例子,在字段上添加'volatile'修饰符会导致不同的jit-ted汇编代码吗?

.net c# concurrency synchronization volatile

6
推荐指数
1
解决办法
1234
查看次数

Powershell脚本参数:显示错误使用的帮助?

在Powershell V2中,我试图使用Param()声明来解析传递给脚本的开关.使用此脚本(example.ps1)可以说明我的问题:

Param(
    [switch] $A,
    [switch] $B,
    [switch] $C
)
echo "$A, $B, $C"
Run Code Online (Sandbox Code Playgroud)

我的问题是这个脚本会默默地忽略任何不正确的开关.例如,"example.ps1 -asdf"将只打印"False,False,False",而不是向用户报告错误的用法.

我注意到如果我添加位置参数,行为会改变:

Param(
    [switch] $A,
    [switch] $B,
    [switch] $C,
    [parameter(position=0)] $PositionalParameter
)
echo "A:$A, B:$B, C:$C"
Run Code Online (Sandbox Code Playgroud)

现在,如果我运行"example2.ps1 -asdf",将引发ParameterBindingException.但是,"example2.ps1 asdf"(注意没有前导破折号的参数)仍然会被默默接受.

我有两个问题:

  1. 有没有办法让Powershell总是向我的脚本报告一个额外的参数作为错误?在我的脚本中,我只想允许固定的一组开关(-A,-B,-C),任何其他参数应该是一个错误.

  2. 当检测到参数错误时,我是否可以让Powershell打印用法(即"get-help example.ps1")而不是引发ParameterBindingException?

parameters powershell

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