Научно-образовательный IT-форум при КНИТУ-КАИ

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Научно-образовательный IT-форум при КНИТУ-КАИ » Задачи и вопросы » [-] Запуск большого количества MPI-процессов на малом числе узлов


[-] Запуск большого количества MPI-процессов на малом числе узлов

Сообщений 1 страница 4 из 4

1

Это задача с давних пор меня интересовала, давайте попробуем реализовать ее на практике.

Передо мной имеются модули, которые следует запустить с числом процессов 511 и 1023 https://bitbucket.org/landwatersun/foru … odules.rar Их автора оставим за кулисами, так как непринципиально.

Характеристики аппаратной-программной платформы, на котором мы будем запускать сие добро, следующие:
6 узлов 2 6-core Intel Xeon E5-2640 CPU/2,5GHz/128GB. Интерконнект между узлами – Gigabit Ethernet с 24-портовым коммутатором вычислителя SuperMicro. Дисковая подсистема узла – массив RAID-10 объемом 4TB на базе SATA дисков WD1000DHTZ. Каждый узел функционирует под управлением ОС Windows Server 2012 R2.

Так как тестовые модули реализованы с применением библиотеки MPI.NET, то на узлы будет установлен софт, необходимый для запуска MPI-программ: http://download.microsoft.com/download/ … ISetup.exe Ранее я использовал старую добрую парочку: HPC Pack 2012 + HPC Pack 2012 R2 MS-MPI Redistributable Package, эта отдельная песня прозвучала тут. Но возникли проблемы с одним узлом, поэтому выбор пал именно на этот пакет.

В ближайшее время отпишу о результатах экспериментов. Осталось только завершить установку софта на оставшихся узлах. Далее запускаем "smpd -p 8677" на всех узлах и вперед! :)

2

Перед запуском основных модулей протестировал тестовый модуль PingPong, который шел вместе с пакетом MPI.NET. Ниже представлен код данного модуля.

/* Copyright (C) 2007  The Trustees of Indiana University
*
* Use, modification and distribution is subject to the Boost Software
* License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
* http://www.boost.org/LICENSE_1_0.txt)

* Authors: Douglas Gregor
*          Andrew Lumsdaine
*
* This test exercises Communicator.ReduceScatter.
*/
using System;
using MPI;

class PingPong
{
    static void Main(string[] args)
    {
        using (new MPI.Environment(ref args))
        {
            Intracommunicator comm = Communicator.world;
            if (comm.Rank == 0)
            {
                Console.WriteLine("Rank 0 is alive and running on " + MPI.Environment.ProcessorName);
                for (int dest = 1; dest < comm.Size; ++dest)
                {
                    Console.Write("Pinging process with rank " + dest + "...");
                    comm.Send("Ping!", dest, 0);
                    string destHostname = comm.Receive<string>(dest, 1);
                    Console.WriteLine(" Pong!");
                    Console.WriteLine("  Rank " + dest + " is alive and running on " + destHostname);
                }
            }
            else
            {
                comm.Receive<string>(0, 0);
                comm.Send(MPI.Environment.ProcessorName, 0, 1);
            }
        }
    }
}


В консоле набрал команду:

c:\Program Files\Microsoft MPI\Bin>mpiexec -hosts 6 10.114.22.10 1 10.114.22.20 1 10.114.22.30 1 10.114.22.40 1 10.114.22.50 1 10.114.22.60 1 \\10.114.22.10\bin\mpi_test


Получил следующий текст:

https://bitbucket.org/landwatersun/forum/downloads/201711231145.jpg

Таким образом, софт на узлах работает исправно, осталось приняться за тестирование основных модулей.

3

Протестировал тестовый модуль PingPong (1000 процессов) на локальной машине, все отработало без проблем. А вот при запуске на двух и более машинах с равномерным распределением процессов на каждую машину происходят жуткие задержки с выводом сообщением на консоль, пока не могу понять, почему так происходит. Попробую протестировать на одной машине указанные выше модули, обладающие большей вычислительной сложностью.

4

Итак, для модулей ACF_N_9, ACF_N_10 при их запуске на одном сервере получены следующие сообщения в консоли:

ACF_N_9 (511 процессов)
https://bitbucket.org/landwatersun/forum/downloads/201711231146.jpg

ACF_N_9 (1023 процесса)
https://bitbucket.org/landwatersun/forum/downloads/201711231147.jpg

ACF_N_10 (511 процессов)
https://bitbucket.org/landwatersun/forum/downloads/201711231148.jpg

ACF_N_10 (1023 процесса)
https://bitbucket.org/landwatersun/forum/downloads/201711231149.jpg

Что касается модулей Ex_N_9, Ex_N_10, то их запуск завершился крахом.


Вы здесь » Научно-образовательный IT-форум при КНИТУ-КАИ » Задачи и вопросы » [-] Запуск большого количества MPI-процессов на малом числе узлов