Установка HPC Pack 2008 SDK
Автор: Xoyk • Июнь 10, 2018 • Реферат • 749 Слов (3 Страниц) • 715 Просмотры
Установка HPC Pack 2008 SDK
Установка HPC Pack SDK похожа на установку других программных продуктов Microsoft:
- скачайте 32-х битную или 64-х битную версию, в соответствии с версией вашей операционной системы;
- запустите скачанный инсталлятор;
- примите лицензионное соглашение;
- нажимайте кнопку «Next» до тех пор, пока она не превратится в кнопку «Finish»;
- скачайте Fix и установите его тоже;
Настройка Visual Studio
Теперь нам нужно настроить Visual Studio для работы с вновь проинсталлированной библиотекой. Если у вас запущена Visual Studio, то на всякий случай перезапустите её после установки HPC Pack SDK. Нажмите Tools → Options, и добавьте путь к заголовочным файлам в Projects and Solutions → VC++ Directories → Show directories for: Include files. Предполагаем, что вы установили HPC Pack SDK в стандартное место:
[pic 1]
Аналогично добавьте директорию с библиотечными файлами. Если у вас 32-х битная операционная система, то путь оканчивается на i386, если же система 64-х битная, то путь оканчивается на amd64:
[pic 2]
Для каждой программы необходимо задать дополнительные файлы компоновки. Нажмите Project → MpiTest Options, и добавьте msmpi.lib в список дополнительных файлов для компоновки:
[pic 3]
Создание простейшей программы
Создайте новый проект на языке C++ (General → Emty Project). Введите имя проекта MpiTest. Добавите дополнительные файлы компановки.
Введите исходный код программы. Будем выполнять тесты на следующем простейшем коде:
#include
#include
using namespace std;
int main(int argc, char **argv)
{
MPI_Init(&argc, &argv);
int rank, size;
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
if( rank )
{
char buf[] = "Hello!";
MPI_Send(buf, sizeof(buf), MPI_CHAR, 0, 0, MPI_COMM_WORLD);
} else {
cout << "Process 0 started" << endl;
for(int i(1); i
{
MPI_Status s;
MPI_Probe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &s);
int count;
MPI_Get_count(&s, MPI_CHAR, &count);
char *buf = new char[count];
MPI_Recv(buf, count, MPI_CHAR,
MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &s);
cout << "Message from process " << s.MPI_SOURCE << ": "
<< buf << endl;
delete[] buf;
}
cout << "Done." << endl;
...