我开始学习MPI,并尝试从VS单元测试中运行一个简单的MPI程序。
版本:Visual Studio 2017(第141页)
处理器:Intel Core i3 CPU 540 @ 3.07GHz,2个核心
Everythin设为64
#include "stdafx.h"
#include "CppUnitTest.h"
#include <xmmintrin.h> // Contain the SSE compiler intrinsics
#include <intrin.h>
#include "mathutils.h"
#include "stringbilder.h"
#include <ctime>
#include <intrin.h>
#include <omp.h>
#include <sstream>
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
using namespace std;
namespace tensorlearn
{
TEST_CLASS(noob_tutorials2) {
public:
TEST_METHOD(OMP_HEllo)
{
#ifdef _OPENMP
if (_OPENMP >= 201107) {
Logger::WriteMessage("Openmp supported");
}
#endif
#pragma omp parallel num_threads(4)
{ stringstream ss;
ss << "hello from MPI: thread " << omp_get_thread_num() <<
" of " << omp_get_num_threads() << " \n";
Logger::WriteMessage(ss.str().c_str());
/* barrier and join*/
}
Logger::WriteMessage("barrier and join");
}
};
}
我觉得只有一个线程在运行:
hello from MPI: thread 0 of 1
barrier and join
我检查了项目的配置:
:
$(MSMPI_INC); $(MSMPI_INC)\ 64; $(VCInstallDir)单元测试\包括;%(AdditionalIncludeDirectories)
启用Sdl检查和多处理器编译
它能导致什么 - 我是否忘记了某些事情,或者是因为从单元测试开始? 我不是从命令promt启动它,而是从VS启动它 - &gt; &#34;运行选定的测试&#34;,这是一个问题吗? 此外,_OPENMP未设置