小编ale*_*dan的帖子

MPI中的关键部分?

我有一些代码将2D数组打印到标准输出.问题是,当我运行它时,每个进程都会写入输出并且数据重叠,使其无法使用.

如何在MPI中构建一个关键部分,以便一次只有一个进程进入我显示输出的部分?

我正在使用OpenMPI.

parallel-processing distributed mpi critical-section

12
推荐指数
1
解决办法
4299
查看次数

K-最近邻C/C++实现

在哪里可以找到k-最近邻算法的串行C/C++实现?
你知道有这个库吗?
我找到了openCV,但实现已经并行了.
我想从串行实现开始,并使用pthreads openMP和MPI并行化.

谢谢,
亚历克斯

c c++ parallel-processing nearest-neighbor knn

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

在WIndows上获得64位进程的TEB

我正试图在Windows 8中获得64个远程线程的TEB.

按照这里的定义,我这样做:

    sz = sizeof(NTSTATUS) + sizeof(PTEB) + sizeof(HANDLE) + sizeof(HANDLE) + sizeof(ULONG_PTR) + sizeof(LONG) + sizeof(LONG);
infoBuff = malloc(sz);
stat = NtQueryInformationThread(mainThread, (THREADINFOCLASS) 0, infoBuff, sz, NULL);
if (!NT_SUCCESS(stat)) {
    printf ("ERROR (code 0x%x): Cannot get information about about the main TEB. \n", stat);
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

如果我编译为32位,则sz为0x1C,并且调用成功返回.如果我编译为64位,则sz为0x2C,但调用返回状态0xC0000004:STATUS_INFO_LENGTH_MISMATCH.

任何想法在64位目标上_THREAD_BASIC_INFORMATION的大小是多少?或者也许是另一种获取远程TEB的方法?

谢谢,亚历克斯

windows winapi win32-process

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