phihist-essay/main.typ

94 lines
No EOL
5.6 KiB
Typst
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#set text(
font: "Times New Roman",
size: 14pt,
lang: "ru"
)
#show heading: set text(size: 14pt)
#set page(
paper: "a4",
margin: (
top: 2cm,
bottom: 2cm,
left: 3cm,
right: 1cm
),
numbering: "1"
)
#set heading(
numbering: "1.1.1.1",
)
#show heading.where(level: 1): set block(below: 2em)
#set par(
justify: true,
leading: 1em,
first-line-indent: (
amount: 1.25cm,
all: true
),
)
#show "〜": h(1.25cm)
#align(
center,
outline(
title: "СОДЕРЖАНИЕ"
)
)
#pagebreak()
#align(
center,
heading(
numbering: none,
"Введение"
)
)
*Актуальность темы*: развитие технологий тесно связано с ростом объёмов обрабатываемых данных, особенно в сфере искусственного интеллекта. В связи с этим история высокопроизводительных вычислений становится как никогда актуальной. Рост массивов данных, развитие ИИ и необходимость ускорения вычислений делают историю языков и моделей программирования для HPC особенно важной. Эволюция подходов позволяет оптимизировать параллельные вычисления на суперкомпьютерах и ускорителях вроде GPU. Ограничения аппаратного обеспечения и растая сложность задач, требующих распределённой обработки, ведут к появлению новых вычислительных моделей.
Первым высокоуровневым языком для HPC стал Fortran, разработанный IBM в 1954 году под руководством Джона Бэкуса, который обеспечил эффективность на быстро эволюционирующем оборудовании и остаётся стандартом для бенчмарков TOP500@noauthor_frequently_nodate. В 19601970-х годах последовательное программирование уступило место параллельным подходам из-за роста многоядерных систем@noauthor_history_nodate.
В контексте развития высокопроизводительных вычислений особую роль сыграли параллельные модели и языки программирования. Уже в 1990-е годы сформировались ключевые подходы -- *message passing* и *shared memory*@noauthor_mpi_nodate. Стандарт MPI (1994 @noauthor_mpi_nodate) стал основой для распределённых систем и фактически закрепился как де-факто стандарт параллельных вычислений на кластерах. Параллельно развивался OpenMP (1997 -- для Fortran и 1998 -- для C/C++), ориентированный на многопоточное программирование для многоядерных CPU.
Следующий значимый этап связан с появлением GPU-программирования. В 2007 году NVIDIA представила CUDA@noauthor_cuda_nodate, впервые предложив удобную модель для унифицированных вычислений на GPU. Её развитие было дополнено открытым стандартом OpenCL@noauthor_opencl_nodate (2008), получившим поддержку NVIDIA и AMD. Параллельно появился Chapel -- язык, создававшийся Cray в рамках программы DARPA HPCS (20022012) и ориентированный на высокопроизводительную параллельность в масштабах суперкомпьютеров@balaji_chapel_2015. Эти модели существенно расширили возможности обработки данных, обеспечив переносимость и адаптивность к гетерогенным вычислительным системам.
В итоге эволюция -- от классических решений вроде Fortran до современных GPU-ориентированных моделей CUDA и OpenCL -- значительно упростила разработку высокопроизводительных алгоритмов. Смещение парадигм в сторону *параллелизма данных* и *гетерогенных вычислений* определяет современное состояние HPC и формирует требования к моделям программирования будущего.
#pagebreak()
#align(
center,
heading(
numbering: none,
"СПИСОК СОКРАЩЕНИЙ"
)
)
ИИ -- искуственный интеллект
HPC (High-Performance Computing) -- высокопроизводительные вычисления
GPU (Graphics Processing Unit) -- графический процессор
#pagebreak()
#align(
center,
heading(
numbering: none,
"СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ"
)
)
#bibliography(
"references.bib",
title: none,
style: "gost-r-7-0-5-2008-numeric-alphabetical.csl"
)