70 likes | 250 Views
Параллельные вычисления Сергей Васильевич Федоров,.
E N D
Параллельные вычисления Сергей Васильевич Федоров, Лекция № 2Программирование на универсальных языкахFortran, C++1. Синтаксис языка Fortran. Программные единицы. 1.1 Разновидности встроенных типов. Точность вычислений на разных платформах. 1.2 Встроенные операторы. Неявное приведение типов. Операторы ввода вывода. 1.3 Функции и процедуры. Формальные аргументы. Модули. Инкапсуляция (ограничение видимости) переменных и процедур. 2. Компиляция, сборка и отладка в Intel Visual Fortran.
Параллельные вычисления Синтаксис Fortran: Встроенные типы 1.,1.01e-3, 1.d0,1.01d-3,! Литералытипа real, double precision(0.0,1.0) , (0d0,1d0),! Литералытипа complex, double complexreal rVar; double precision dVar! Точность по умолчанию 4 и 8 байтreal (KIND=8) :: dVar = 0d0! Явное указание точности в байтахcomplex (KIND=16) :: сdVar! Лучше не использовать =>double complex, parameter :: сdConst = (0d0,1d0)! Мнимая единцаdouble complex, pointer :: сdPtr => Null()! Модификатор указателяallocate(cdPtr); ….. deallocate(cdPtr) ! Размещение указателяcdPtr => cdVar! Присвоение указателяreal , save:: rVar! save для гарантии сохранности значений
Параллельные вычисления 2. Компиляция, сборка и отладка в Intel Visual Fortran. ifort /? > ifortOpts.txt! Ключи Intel компилятора (для кластера) ! .f90, .for, .f, .obj, .lib => .obj, .exe Link /? > linkOpts.txt ! MS Линковщик (.obj => .exe)Lib /? > libOpts.txt ! MS Библиотекарь (.obj => .lib)
Параллельные вычисления 2. Компиляция, сборка и отладка в Intel Visual Fortran. 2.1 MS Visual Studio и Распараллеливание в рамках Win32 API: Критические секции, События, Семафоры, Mutex2.2 Открытый стандарт OpenMP. Отладка параллельного исполнения потоков с помощью Intel VTune. Обнаружение ошибок с помощью Intel Thread Checker. Оптимизация исполнения с помощью Intel Thread Profiler.2.3 Множественное распараллеливание на Linux кластере с помощью библиотеки MPI.SIMD модель параллельного программирования. Компиляция и запуск программы на кластере. Группа процессов в коммуникаторе. Передача/прием сообщений между отдельными процессами2.4 Перспективы развития универсальных языковпредназначенных для параллельного программирования.Развитие ООП в Fortran 2003. Co-Array Fortran: инкапсуляция вызовов MPI библиотеки в новом стандарте Фортрана. Новый язык программирования Titanium как расширение Java на кластерные платформы.
Параллельные вычисления Кластер ФОИФ Содержание практического СпецКурса1. Введение в практику прикладного программирования в оптике1.1 Объектно-ориентированные возможности современного Фортрана: Модульнось и инкапсуляция, перегрузка и указатели на функции Fortran 95, элементы языка облегчающие векторизацию и распараллеливание.1.2 Java как чистый межплатформенный объектно-ориентированный язык наиболее удобный для создания абстрактного интерфейса пользователя. Потоки в Java. Средства синхронизации обращения потоков к данным и коду.1.3 Mathematica как универсальный язык программирования сложных научных задач. Символьные вычисления. Компилирование кода. Презентация результатов вычисления. Использование множественных ядер для распараллеливания.
Основные команды Linux(которые надо знать) ls – сведения о директории (dir – это под Windows), cat– замена copy, rename, type под Windows, ps – сведения о запущенном процессе, о его id top – script,написанный на основе ps, kill – как убить, или приостановить, запущенный Вами процесс, kill –STOPid; kill –TERM id;kill –KILL id; (killall – не надо) screen – запуск терминалов (окон с очередью команд), с возможностью выхода и последующего продолжения, sshn4 – вход на машину 4-го узла (всего 16 + HEAD) exit – выход из терминала. 2
CONCLUSION In real conditions • It is demonstrated. • It is necessary to. • The case of http://www.freewebs.com/rosanovteam/