1 Использование вычислительного кластера Кемеровского государственного университета Авторы: Власенко Андрей, Андреев Никита Докладчик: Власенко Андрей.

Презентация:



Advertisements
Похожие презентации
1 Использование вычислительного кластера Кемеровского государственного университета Авторы: Власенко Андрей, Андреев Никита Докладчик: Власенко Андрей.
Advertisements

1 Использование вычислительного кластера Кемеровского государственного университета Кафеда ЮНЕСКО по НИТ.
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ВЫСОКОГО УРОВНЯ Работа с ОС GNU/Linux в терминальных классах Кафедры ВС Старший преподаватель Кафедры ВС, к.т.н. Поляков Артем.
Практическое занятие Вводное занятие Преподаватели: Доцент Кафедры ВС, к.т.н. Поляков Артем Юрьевич © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ»
Типовые расчёты Растворы
Enabling Grids for E-sciencE GILDA Grid Demonstrator Олешко Сергей Петербургский институт ядерной физики РАН.

Кафедра ЮНЕСКО по НИТ1 Параллельное программирование MPI – message passing interface Власенко Андрей Юрьевич.
Ребусы Свириденковой Лизы Ученицы 6 класса «А». 10.
Урок повторения по теме: «Сила». Задание 1 Задание 2.

Школьная форма Презентация для родительского собрания.
Программное обеспечение серверов и клиентов. Программы-клиенты web-клиент ftp-клиент ssh-клиент mail-клиент.
1 ГОУ ВПО Тульский государственный университет Начальник отдела информационной безопасности. Серегин Денис Витальевич.
Help: настройка Visual Studio.Net для создания консоль-приложения на основе Intel C++ с применением OpenMP. Инструменты «Практическое параллельное программирование.
Введение в параллельное программирование Максим Городничев Летняя школа отдела МО ВВС ИВМиМГ СО РАН
Учебный курс Объектно-ориентированный анализ и программирование Лекция 4 Трансформация логической модели в программный код Лекции читает кандидат технических.
Michael Jackson
Лекция 3 Раздел 3,1 Windows Phone Темы раздела 3.
Основы UNIX-подобных операционных систем на примере Debian GNU/Linux.
Транксрипт:

1 Использование вычислительного кластера Кемеровского государственного университета Авторы: Власенко Андрей, Андреев Никита Докладчик: Власенко Андрей

2 Мотивация создания вычислительных кластеров Для получения численного решения многих задач механики, гидро- и газодинамики, ядерной физики и других областей физики с надлежащей точностью зачастую недостаточно вычислительных мощностей одного ПК. Выход: заставить работать над задачей несколько процессоров.

3 Архитектура кластера Вычислительный узел Вычислительный кластер Сеть передачи данных Оперативная память Кэш Ядро Оперативная память Кэш Ядро Процессор

4 Конфигурация кластера КемГУ 4 вычислительных узла и 1 управляющий по 2 процессора Intel Xeon 5410 (2.33 Ггц) в каждом узле по 4 ядра в каждом процессоре по 8 Гб памяти в каждом узле (по 1 Гб на ядро) Gigabit Ethernet 480 Гб дискового пространства операционная система Linux CentOS

5 Сайт поддержки пользователей кластера (icp.kemsu.ru) Данная презентация Бланк заявки на регистрацию пользователя Правила работы с вычислительным кластером КемГУ Полезные программы Учебные материалы (ссылки на литературу и интернет-ресурсы) Памятка пользователю Раздел «Университетский кластер»

6 Порядок предоставления доступа к кластеру КемГУ 1.Ознакомиться с правилами для пользователей вычислительного кластера Кемеровского государственного университета 2.Заполнить бланк заявки и отнести на подпись проректору по ИТО КемГУ 3. Получить логин и пароль учетной записи у Власенко Андрея (2134 каб.) или Андреева Никиты (2129 каб.)

7 Программирование для кластерной вычислительной системы При запуске обычных последовательных программ на вычислительном кластере невозможно получить выигрыш в производительности. Вывод: требуется инструментарий для распараллеливания задачи на несколько процессоров. MPI (Message Passing Interface) – стандарт де-факто при программировании вычислительных кластеров. (Афанасьев К.Е., Стуколов С.В. «Многопроцессорные вычислительные системы и параллельное программирование») MPI сложен в освоении и требует изрядных навыков прикладного программирования.

8 MPI на кластере КемГУ Существует единственный стандарт MPI: report.pdf И множество реализаций стандарта (MPI Chameleon, Open MPI, MVAPICH, Intel MPI, HP MPI, Microsoft MPI и др.), которые содержат библиотеки функций и набор утилит и скриптов. На кластере КемГУ: MPICH Open MPI MPI LAM 7.1.4

9 Программирование для кластерной вычислительной системы OpenMP – стандарт де-факто при программировании многопроцессорных (многоядерных) систем с общей памятью. С его помощью можно загрузить 8 ядер на одном узле UPC (Unified Parallel C) – подходит для программирования как систем с общей, так и с распределенной памятью. 1.Tarek El-Ghazawi, William Carlson, Thomas Sterling, Katherine Yelick: «UPC: Distributed Shared Memory Programming»

10 Вход на кластер Необходимо осуществить ssh-соединение (Secure Shell). Для этого требуется ssh-клиент. Один из самых популярных и удобных клиентов – Putty

11 Ввод IP-адреса или master.kemsu.ru

12 Выбор кодировки Translation UTF-8

13 Ввод логина Вместо vlas свой логин Ввод пароля При вводе пароль не отображается

14 Командная строка Приглашение командной строки в ОС Linux. Материалы по ОС Linux:

15 Смена пароля passwd

16 Файловый менеджер Midnight Commander Вызов файлового менеджера Midnight Commander (mc)

17 Копирование файлов на кластер / с кластера Используем программу WinSCP

18 Копирование файлов на кластер / с кластера или master.kemsu.ru

19 Копирование файлов на кластер / с кластера Скопировать папку programs_for_study в домашнюю директорию.

20 Переименование/перемещениефайлов Переименование/перемещение файлов 1.В Midnight commander нажать комбинацию Ctrl+O 2.mv pbsjob1_vlas pbsjob1_stud{i} 3.Кнопку «вверх» - появится предыдущая набранная строка 4.mv pbsjob2_vlas pbsjob2_stud{i} 5.Кнопку «вверх» - появится предыдущая набранная строка 6.mv pbsjob3_vlas pbsjob3_stud{i} 7.Кнопку «вверх» - появится предыдущая набранная строка 8.mv pbsjob4_vlas pbsjob4_stud{i} 9.ls – выводит содержимое каталога 10.Ctrl + O – возврат в mc

21 Написание исходного кода программы touch program.cpp – создает файл с названием program.cpp

22 Написание исходного кода программы Щелчком по кнопке F4 на имени файла program.cpp открываем его в режиме редактирования и набираем текст программы.

23 Выбор MPI-реализации Для этого необходимо воспользоваться утилитой switcher. switcher mpi --list switcher mpi --show

24 Выбор MPI-реализации switcher mpi –add-attr default mpich-ch_p4-gcc switcher mpi --show

25 Компиляция mpi-программы на C mpiСС c_mpi_prog.cpp –o c_mpi_prog.out

26 Компиляция mpi-программы на fortran mpif77 fortran_mpi_prog.f –o fortran_mpi_prog.out

27 Создание скрипта запуска для программы на C pbsjob1_vlas #PBS -l walltime=00:01:00,nodes=4:ppn=1 #PBS -q #PBS -N vlasjob1 #PBS -o /home/vlas/programs_for_study/out_vlasjob1.txt #PBS -e /home/vlas/programs_for_study/out_vlasjob1.txt #!/bin/sh mpirun –np 4 -machinefile $PBS_NODEFILE /home/vlas/programs_for_study /fortran_mpi_prog.out где walltime – предполагаемое время выполнения, nodes - число вычислительных узлов, ppn – число вычислительных ядер на каждом узле. #PBS -q - Имя сервера и очереди #PBS -N job_name - имя задания #PBS -o /home/tester/out – указание пути для записи файла потока вывода #PBS -o /home/tester/err – указание пути для записи файла потока ошибок #!/bin/sh – командный интерпретатор mpirun– команда запуска MPI-приложения

28 Постановка задачи в очередь qsub pbsjob1_vlas Отслеживание состояния задачи в очереди qstat Job id Name User Time Use S Queue master my_job tester 0 R workq 147.master job_hpl tester 0 Q workq 148.master job_hpl tester 0 Q workq 149.master job_hpl tester 0 Q workq 150.master job_hpl tester 0 Q workq

29 Файлы с результатами работы Файл результатов (поток stdout): /home/vlas/programs_for_study/out_vlasjob1.txt Файл с ошибками (поток stderr): /home/vlas/programs_for_study/err_vlasjob1.txt

30 Создание скрипта запуска для программы на Fortran pbsjob2_vlas #PBS -l walltime=00:01:00,nodes=4:ppn=1 #PBS -q #PBS -N vlasjob2 #PBS -o /home/vlas/programs_for_study/out_vlasjob2.txt #PBS -e /home/vlas/programs_for_study/out_vlasjob2.txt #!/bin/sh mpirun –np 4 -machinefile $PBS_NODEFILE /home/vlas/programs_for_study / fortran _mpi_prog.out где walltime – предполагаемое время выполнения, nodes - число вычислительных узлов, ppn – число вычислительных ядер на каждом узле. #PBS -q - Имя сервера и очереди #PBS -N job_name - имя задания #PBS -o /home/tester/out – указание пути для записи файла потока вывода #PBS -o /home/tester/err – указание пути для записи файла потока ошибок #!/bin/sh – командный интерпретатор mpirun– команда запуска параллельного приложения

31 Постановка задачи в очередь qsub pbsjob2_vlas Отслеживание состояния задачи в очереди qstat

32 Компиляция openmp-программы на C g++ -fopenmp c_openmp_prog.cpp –o c_openmp_prog.out

33 Создание скрипта запуска для openmp- программы pbsjob3_vlas #PBS -l walltime=00:01:00,nodes= 1 :ppn= 8 #PBS -q #PBS -N vlasjob3 #PBS -o /home/vlas/programs_for_study/out_vlasjob3.txt #PBS -e /home/vlas/programs_for_study/out_vlasjob3.txt #!/bin/sh export OMP_NUM_THREADS=8 /home/vlas/programs_for_study/c_openmp_prog.out где walltime – предполагаемое время выполнения, nodes - число вычислительных узлов, ppn – число вычислительных ядер на каждом узле. #PBS -q - Имя сервера и очереди #PBS -N job_name - имя задания #PBS -o /home/tester/out – указание пути для записи файла потока вывода #PBS -o /home/tester/err – указание пути для записи файла потока ошибок #!/bin/sh – командный интерпретатор OMP_NUM_THREADS– команда запуска параллельного приложения

34 Постановка задачи в очередь qsub pbsjob3_vlas Отслеживание состояния задачи в очереди qstat

35 Компиляция openmp-программы на Fortran gfortran -fopenmp fortran_openmp_prog.f –o fortran_openmp_prog.out

36 Создание скрипта запуска для openmp- программы pbsjob4_vlas #PBS -l walltime=00:01:00,nodes= 1 :ppn= 8 #PBS -q #PBS -N vlasjob4 #PBS -o /home/vlas/programs_for_study/out_vlasjob4.txt #PBS -e /home/vlas/programs_for_study/out_vlasjob4.txt #!/bin/sh export OMP_NUM_THREADS=8 /home/vlas/programs_for_study /fortran _openmp_prog.out где walltime – предполагаемое время выполнения, nodes - число вычислительных узлов, ppn – число вычислительных ядер на каждом узле. #PBS -q - Имя сервера и очереди #PBS -N job_name - имя задания #PBS -o /home/tester/out – указание пути для записи файла потока вывода #PBS -o /home/tester/err – указание пути для записи файла потока ошибок #!/bin/sh – командный интерпретатор OMP_NUM_THREADS– команда запуска параллельного приложения

37 Компиляция UPC программы upcc -network=udp -pthreads=8 upc_prog.c -o upc_prog.out

38 Создание скрипта запуска для UPC программы pbsjob5_vlas #PBS -l walltime=00:01:00,nodes=4:ppn=8 #PBS -q #PBS -N vlasjob5 #PBS -o /home/vlas/programs_for_study/out_vlasjob5.txt #PBS -e /home/vlas/programs_for_study/err_vlasjob5.txt #!/bin/sh /opt/bupc-runtime /bin/upcrun -n 32 /home/vlas/programs_for_study/upc_prog.out где walltime – предполагаемое время выполнения, nodes - число вычислительных узлов, ppn – число вычислительных ядер на каждом узле. #PBS -q - Имя сервера и очереди #PBS -N job_name - имя задания #PBS -o /home/…/out_vlasjob5.txt – указание пути для записи файла потока вывода #PBS -o /home/…/err_vlasjob5.txt – указание пути для записи файла потока ошибок #!/bin/sh – командный интерпретатор

39 Задание Забрать файлы результатов out_stud{i}job.txt посредством программы winscp на локальный компьютер.

40 БЛАГОДАРЮ ЗА ВНИМАНИЕ!