docs: intro for essay done

This commit is contained in:
Andrew 2025-12-08 14:16:34 +07:00
parent 5213f4dbb7
commit 1274a852c1
2 changed files with 149 additions and 0 deletions

94
main.typ Normal file
View file

@ -0,0 +1,94 @@
#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"
)

55
references.bib Normal file
View file

@ -0,0 +1,55 @@
@misc{noauthor_frequently_nodate,
title = {Frequently {Asked} {Questions} {\textbar} {TOP500}},
url = {https://top500.org/resources/frequently-asked-questions/},
urldate = {2025-12-08},
}
@misc{noauthor_history_nodate,
title = {The {History} of the {Development} of {Parallel} {Computing} {\textbar} {PARALLEL}.{RU} - Информационно-аналитический центр по параллельным вычислениям},
url = {https://parallel.ru/history/wilson_history.html},
urldate = {2025-12-08},
}
@misc{noauthor_mpi_nodate,
title = {{MPI} {Documents}},
url = {https://www.mpi-forum.org/docs/},
language = {en},
urldate = {2025-12-08},
}
@misc{@noauthor_mpi_nodate,
title = {Parallel {Programming} - {HPC} {Wiki}},
url = {https://hpc-wiki.info/hpc/Parallel_Programming},
urldate = {2025-12-08},
}
@misc{noauthor_cuda_nodate,
title = {{CUDA} {Toolkit} {Archive}},
url = {https://developer.nvidia.com/cuda-toolkit-archive},
language = {en},
urldate = {2025-12-08},
journal = {NVIDIA Developer},
}
@misc{noauthor_opencl_nodate,
title = {{OpenCL} - an overview {\textbar} {ScienceDirect} {Topics}},
url = {https://www.sciencedirect.com/topics/computer-science/opencl},
urldate = {2025-12-08},
}
@incollection{balaji_chapel_2015,
title = {Chapel},
isbn = {9780262332248},
url = {https://direct.mit.edu/books/book/4070/chapter/168849/Chapel},
language = {en},
urldate = {2025-12-08},
booktitle = {Programming {Models} for {Parallel} {Computing}},
publisher = {The MIT Press},
author = {Chamberlain, Bradford L.},
editor = {Balaji, Pavan},
month = nov,
year = {2015},
doi = {10.7551/mitpress/9486.003.0008},
pages = {129--160},
}