Skip to content

akhtyamovpavel/ParallelComputationExamples

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ParallelComputationExamples

Примеры кодов с MPI, OpenMP и CUDA. Код собран при помощи CMake.

Структура проекта

MPI

  • 00-hello-world - Простой пример Hello World с использованием MPI
  • 01-send_recv - Примеры использования функций Send/Recv
  • 02-ping-pong - Пример обмена сообщениями между процессами (задача "Пинг-понг")
  • 03-probe-message-status - Примеры использования Probe и получения статуса сообщений
  • 04-isend-irecv - Примеры неблокирующих операций ISend/IRecv

OpenMP

  • 00-hello-world - Базовый пример с использованием OpenMP
  • 01-parallel-for - Примеры параллельных циклов
  • 02-sections - Примеры использования секций в OpenMP
  • 03-master - Примеры с директивой master
  • 04-parralel-sum - Примеры параллельного суммирования
  • 05-matrix-multiplication - Умножение матриц с использованием OpenMP
  • 06-critical-sections - Примеры использования критических секций

CUDA

HadoopStackExamples

  • MapReduce - Примеры MapReduce
    • 01-one-stage - Одностадийный MapReduce - задача WordCount
    • 02-two-stages - Двухстадийный MapReduce для получения Top-слов
  • Cassandra - Примеры работы с Apache Cassandra
  • Hive - Примеры работы с Apache Hive

Сборка проекта

Проект использует CMake для сборки примеров MPI и OpenMP. По умолчанию сборка CUDA-примеров отключена.

Для сборки проекта:

mkdir build
cd build
cmake ..
make

Примеры HadoopStackExamples имеют отдельные системы сборки:

  • MapReduce - сборка через Maven
  • Cassandra - инфраструктура запускается через Docker
  • Hive - сборка через Maven

Инструкция по использованию MPI кластера

Компиляция программ происходит при помощи компиляторов mpicc и mpic++. Подключение происходит при помощи команды

module add mpi/openmpi4-x86_64

После этого mpicc и mpic++ подгрузятся в $PATH

Запуск программ MPI

Для локального запуска можно использовать скрипт run_local.sh. Опция -np используется для указания количества процессов.

MPI локально может быть установлен для следующих ОС:

Ubuntu: sudo apt-get install openmpi-bin libopenmpi-dev

Mac OS: brew install open-mpi

Команды по использованию SLURM

  • sinfo - посмотреть информацию по нодам кластера
  • sinfo -N -l - посмотреть информацию по каждой ноде кластера
  • squeue - посмотреть очередь задач
  • srun <command> - запустить команду на ноде кластера
  • sbatch <script> - запустить скрипт на нодах кластера. Каждый скрипт должен начинаться с #!/bin/bash. Примеры запуска команд можно найти здесь. После этого должно высветиться сообщение Submitted batch job <job_id>, результаты работы попадают в лог-файл slurm-<job_id>.out.

Полезные ссылки:

About

Examples of MPI and OpenMP (adapted from MPI Tutorial)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •