+7 495 788-56-99, доб. 9999
Управление
информатизации
НИЯУ МИФИ

Учебные материалы

Основы Linux

Операционная система Linux является стандартом де-факто в HPC.

Материалы по UNIX: https://www.opennet.ru/docs/RUS/unix_basic/index.html.

Материалы по bash: https://www.opennet.ru/docs/RUS/bash_scripting_guide/.

Интерпретируемые языки

Интерпретируемые языки качественно уступают компилируемым языкам по скорости выполнения. Однако, они пригодны для высокоуровневого программирования с использованием низкоуровневых компилируемых библиотек. В HPC стандартом интерпретируемого языка де-факто является Python3.

Материалы по Python: https://www.python.org/.

Векторное программирование

Материалы по NumPy: https://numpy.org/.

Материалы по SciPy: https://www.scipy.org/.

Материалы по Matplotlib: https://matplotlib.org/.

Материалы по Pandas: https://pandas.pydata.org/.

Параллельное программирование

Материалы по mpi4py: https://mpi4py.readthedocs.io/en/stable/.

Параллельная работа с файлами

Материалы по HDF: https://www.h5py.org/.

Материалы по netCDF: https://unidata.github.io/netcdf4-python/.

Нейросети

Материалы по PyTorch: https://pytorch.org/.

Материалы по scikit-learn: https://scikit-learn.org/stable/.

Материалы по RAPIDS: https://rapids.ai/.

Материалы по TensorFlow: https://www.tensorflow.org/.

Материалы по CatBoost: https://catboost.ai/.

Компилируемые языки

Основными языками HPC приложений являются компилируемые языки. Стандартными являются C, C++, Fortran. Нижеуказанные материалы рассчитаны на компилируемые языки, если не указано обратное.

Материалы по С: https://en.wikipedia.org/wiki/The_C_Programming_Language.

Материалы по С: https://en.wikibooks.org/wiki/C_Programming.

Материалы по С++: https://en.wikibooks.org/wiki/C%2B%2B_Programming.

Профилирование и отладка

Профилирование является обязательным этапом разработки HPC приложения и должно предшествовать использованию любых оптимизаций.

Профилирование

Материалы по perf: https://perf.wiki.kernel.org/index.php/Tutorial.

Материалы по oprofile: https://oprofile.sourceforge.io/news/.

Отладка

Материалы по gdb: https://www.gnu.org/software/gdb/.

Материалы по gdb: http://www.unknownroad.com/rtfm/gdbtut/gdbtoc.html.

Материалы по valgrind: https://valgrind.org/.

Материалы по strace: https://strace.io/.

Параллельное программирование

Введение: https://hpc.llnl.gov/documentation/tutorials/introduction-parallel-computing-tutorial.

Векторное программирование

Векторное программирование позволяет повысить производительность ядра процессора в десятки раз на современном оборудовании. Автоматическая векторизация компилятором не позволяет полноценно использовать эти возможности.

Материалы по GSL: https://www.gnu.org/software/gsl/doc/html/index.html.

Материалы по BLAS: https://www.netlib.org/blas/.

Материалы по LAPACK: https://www.netlib.org/lapack/.

Материалы по FFTW: http://www.fftw.org/.

Параллельное программирование на общей памяти

Параллельное программирование на общей памяти позволяет использовать все ядра одного компьютера в одном алгоритме. Автоматическое распрараллеливание компилятором не позволяет полноценно использовать эти возможности.

Лекции и упражнения: https://hpc-tutorials.llnl.gov/openmp/.

Параллельное программирование на раздельной памяти

Параллельное программирование на раздельной памяти позволяет использовать все компьютеры одной вычислительной сети в одном алгоритме.

Лекции и упражнения: https://hpc-tutorials.llnl.gov/mpi/.

Углубленный материал: https://hpc.llnl.gov/sites/default/files/DavidCronkSlides.pdf.

Параллельная работа с файлами

Материалы по HDF: https://www.hdfgroup.org/solutions/hdf5/.

Материалы по netCDF: https://www.unidata.ucar.edu/software/netcdf/.

Параллельные нейросети

Материалы по TensorFlow: https://www.tensorflow.org/.

Графические ускорители

Векторная арифметическая производительность графического ускорителя может превышать производительность центрального процессора на порядок.

Российский инженерный центр NVIDIA предоставляет учебно-методические комплекты и лабораторные работы он-лайн по следующим темам:

  • Глубокое обучение и искусственный интеллект;
  • Параллельные высокопроизводительные вычисления на GPU;
  • Робототехника на базе ИИ.

Учебные материалы от NVIDIA доступны на сайте https://developer.nvidia.com/teaching-kits.

Желающие получить доступ к материалам могут оформить аккаунт преподавателя в форме регистрации, доступной на этом же ресурсе. Будьте внимательны! Необходимо указывать реальные ФИО, реальную должность и реальную служебную почту в домене @mephi.ru. Будьте внимательны! Ознакомьтесь с условиями конфиденциальности, предлагаемыми при регистрации аккаунта.

Запрос на доступ к материалам обрабатывается несколько дней. При возникновении проблем Вы можете обратиться в техническую поддержку вычислительного центра hpc-private@ut.mephi.ru или в техническую поддержку NVIDIA.

Материалы по OpenCL: https://www.khronos.org/opencl/.

Материалы по MAGMA: https://icl.cs.utk.edu/magma/.

Материалы по ArrayFire: https://arrayfire.com/.

Материалы по OpenCV: https://opencv.org/.

Материалы по TensorFlow: https://www.tensorflow.org/.

Нейронные ускорители

Метод нейронных сетей относится к BigData, смежной с HPC области знаний. Для нейронных сетей существуют узкоспециализированные аппаратные ускорители (NPU, AI-accelerator), в том числе тензорные процессоры (TPU). Стоимость TPU может быть существенно меньше стоимости GPU при схожей производительности для нейронных сетей.

Материалы по TensorFlow Lite: https://coral.ai/docs/edgetpu/models-intro/.

Материалы по JetPack SDK: https://developer.nvidia.com/embedded/jetpack.

Более общие материалы NVIDIA по нейронным сетям представлены в разделе "Графические ускорители".

Квантовые ускорители

Использование вычислительной техники на основе квантовой логики позволяет качественно уменьшить время выполнения для таких алгоритмов, как квантовая факторизация, квантовая минимизация, моделирование явлений квантовой природы. Обучение квантовым вычислениям возможно на эмуляторах для классических ПК. Настоящие квантовые ускорители доступны в виде хостинга.

Материалы от QOSF: https://github.com/qosf/awesome-quantum-software.

Материалы хостингу: https://en.wikipedia.org/wiki/Cloud-based_quantum_computing.

Контакты

+7 495 788-56-99
доб. 9999
115409, Москва
Каширское шоссе, 31