Как запустить код под MPI на клауде
Andrew NikolaevFull-версия гайда доступна здесь.
Основные ингридиенты:
- Рабочий
cpp
шний код под mpi c прошлого сема. - Аккаунт в Google Cloud Platform.
Что дальше?
После того как аккаунт создан, необходимо забабахать виртуалку.
1. Переходим на страницу с виртуальными машинами (ВМ):
2. Выбираем Create instance. Там всё оставляем по дефолту, меняем только:
• 1 vCPU → 4 vCPU
• Boot disk: Ubuntu 16.04 LTS
• ✓ Allow HTTP traffic
3. Нажимаем Create. Виртуалка создана!
4. Теперь загружаем на Google Drive свой cpp
шник, открываем к нему доступ по ссылке и запоминаем его id
шник.
5. После этого возвращаемся на страничку ВМ и нажимаем на SSH в строке с витруалкой.
Если выдаёт Warnings, то
a. Нажимаем на стрелочку справа от SSH, где выбираем
b. В появившемся окне копируем команду типа такой:
gcloud compute --project "optimum-reactor-187009" ssh --zone "us central1-a" "ubuntu-xenial-8"
c. Запускаем на своём компе Google Cloud SDK Shell (см. Примечания) и выполняем её там. Откроется консоль виртуалки.
6. В него мы вводим команду
wget --no-check-certificate 'https://docs.google.com/uc&export=download&id=FILEID' -O FILENAME
где вместо FILEID подставляем id из пункта 4, FILENAME – какое-нибудь слово – имя файла, как он будет сохранён на виртуалке.
7. Теперь поставим на ВМ gcc и mpi-модуль. Делается двумя командами:
sudo apt-get install mpich sudo apt-get install gcc
8. Далее файл на диске надо скомпилить и запустить. Для этого вводим команды:
mpic++ filename.cpp -o name -std=c++11 mpirun -np 2 ./name
Где вместо 2 можно поставить какое-нить число от 1 до 8 – кол-во задействованных процессов.
9. Если ошибок доселе не было, то можно поиграться, указывая разное кол-во процессов:
Виден прирост в скорости при увеличении кол-ва задействованных процессов.
Ещё можно посмотреть, как загружается клауд:
И отметить, что подробная конфигурация гугловсих машин, увы, скрыта:
О том, как объединить две ВМ и запустить свой код на обеих одновременно, читайте тут.
N. Ах, да! И не забудьте выключить его нахрен. А то придётся заводить новый ак с 300$.
Примечания
Найти Cloud SDK можно здесь. На винде дальнейшая установка стандартная. Для яблочников с macOS установка описана ниже.
Как установить Cloud SDK на MacOS
a. Открываем консоль, там вводим
python -V
b. Должно вернуть версию Python 2.7.x. Потом пишем
curl https://sdk.cloud.google.com | bash
c. Устанавливаем. И проверяем работоспособность gcloud строчкой
/Users/USERNAME/Desktop/google-cloud-sdk/bin/gcloud init
d. После этого вводим команду из пункта 5-b выше. В ответ на что будет предложено установить пароль (5-значный). Делаем это.
Затем тут же будет предложено пройти авторизацию, вводим наш пароль из предыдущего пункта, вас перенаправит на страницу гугл-аккаунта, где будет запрошено разрешение на доступ к нему - разрешаем.
e. Будет написано, что вы залогинились [ваша почта], и предложено выбрать проект. Выберите тот, в котором создавали ВМ.
Конфигурацию пропускаем. Видим победную строку.
Консоль виртуалки при этом откроется в консоле мака (ваше имя будет подсвечено зелёным).
f. Далее переходим к пункту 6 из основой части гайда.