Проектные задания для участников суперкомпьютерной школы 2011 Задание 1. Изучение производительности кода моделирования динамики газа на СК Ломоносов Предлагается пройти цикл анализа и оптимизации кода на примере известного обучающего кода молекулярной динамики LJMD. Требуется оценить масштабируемость для числа ядер 1, 2, 4, 8, 16, 32, 64, 128 и моделей с числом атомов 108, 2916, 78732 для вариантов программ чистого MPI-кода, гибридного MPI+OpenMP кода. Отчет по выполнению задания должен содержать: 1. Результаты производительности и масштабируемости чистого MPI-кода при использовании компиляторов gcc, intel и MPI-библиотек OpenMPI, Intel MPI. Дать краткое резюме по полученным результатам (какие варианты оказались лучше и насколько), исчерпывающе описать вычислительные эксперименты (для возможности воспроизведения результатов). Использовать реализацию кода 03_mpi_parallel/ljmd_04.c из архива. 2. Результаты производительности и масштабируемости гибридного MPI+OpenMP кода при использовании компиляторов gcc, intel и MPIбиблиотек OpenMPI, Intel MPI. Дать краткое резюме по полученным результатам (какие варианты оказались лучше и насколько), исчерпывающе описать вычислительные эксперименты (для возможности воспроизведения результатов). Использовать реализацию кода 06_hybrid_parallel/ljmd_03.c из архива. 3. Выполнить профилирование чистого MPI-кода с помощью профилировщика mpiP для запусков на базе Intel MPI, OpenMPI. Дать резюме по сравнению производительности. Использовать соответствующие реализации кодов из п.1 и п.2. Исходный код для задания и лекции по оптимизации данного кода от автора Axel Kohlmeyer доступны по ссылкам: http://sites.google.com/site/akohlmey/software/ljmd/ljmd-20091129.tar.gz, http://sites.google.com/site/akohlmey/software/ljmd Дополнительная часть (для продвинутых участников, либо можно давать в качестве отдельной опции для каждого из членов группы): Выполнить профилирование чистой MPI-реализации с помощью профилировщиков Scalasca, TAU, Intel Trace Analyzer and Collector для запусков на базе Intel MPI, OpenMPI. - П.2 дополнительно изучить производительность гибридного кода MPI+OpenMP при разных схемах запуска приложения (разные варианты кол-ва MPI и OpenMP процессов на узле и их распределения по вычислительным ядрам). - На кластере ГрафИТ! выполнить GPU-вариант моделирования для заданных примеров и сопоставить полученную производительность и результаты на x86-архитектуре. Использовать реализациию 05_gpu_parallel/ljmd_07.cu из архива. - Выполнить анализ и настройку производительности коллективных коммуникационных операций в библиотеках Intel MPI, OpenMPI в чистой MPIреализации моделирования. Задание 2. Анализ кода моделирования динамики газа на СК Blue Gene/P Предлагается пройти цикл анализа и оптимизации кода на примере известного обучающего кода молекулярной динамики LJMD. Требуется оценить масштабируемость для числа ядер 1, 2, 4, 8, 16, 32, 64, 128 и моделей с числом атомов 108, 2916, 78732 для вариантов программ чистого MPI-кода, гибридного MPI+OpenMP кода. Отчет по выполнению задания должен содержать: 1. Результаты производительности и масштабируемости чистого MPI-кода при использовании компиляторов gcc, xlc и MPI-библиотеки IBM. Дать краткое резюме по полученным результатам (какие варианты оказались лучше и насколько), исчерпывающе описать вычислительные эксперименты (для возможности воспроизведения результатов). Использовать реализацию кода 03_mpi_parallel/ljmd_04.c из архива. 2. Результаты производительности и масштабируемости гибридного MPI+OpenMP кода при использовании компиляторов gcc, xlc и MPIбиблиотеки IBM. Дать краткое резюме по полученным результатам (какие варианты оказались лучше и насколько), исчерпывающе описать вычислительные эксперименты (для возможности воспроизведения результатов). Использовать реализацию кода 06_hybrid_parallel/ljmd_03.c из архива. 3. Выполнить профилирование чистого MPI-кода с помощью профилировщика mpiP. Дать резюме по анализу производительности, сильной масштабируемости. Использовать соответствующие реализации кодов из п.1 и п.2. Исходный код для задания и лекции по оптимизации данного кода от автора Axel Kohlmeyer доступны по ссылкам: http://sites.google.com/site/akohlmey/software/ljmd/ljmd-20091129.tar.gz, http://sites.google.com/site/akohlmey/software/ljmd Дополнительная часть (для продвинутых участников, либо можно давать в качестве отдельной опции для каждого из членов группы): Выполнить профилирование профилировщиков Scalasca, TAU. чистой MPI-реализации с помощью - П.2 дополнительно изучить производительность гибридного кода MPI+OpenMP при разных схемах запуска приложения (разные модели памяти узла). - На кластере ГрафИТ! выполнить GPU-вариант моделирования для заданных примеров и сопоставить полученную производительность и результаты на x86-архитектуре. Использовать реализацию 05_gpu_parallel/ljmd_07.cu из архива. - Выполнить анализ и настройку производительности коллективных коммуникационных операций в чистой MPI-реализации моделирования.