phihist-essay/references.bib

280 lines
11 KiB
BibTeX
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.

@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_parallel_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},
}
@misc{noauthor_fortran_nodate,
title = {Fortran {\textbar} {IBM}},
url = {https://www.ibm.com/history/fortran},
abstract = {The worlds first programming language standard opened the door to modern computing.},
language = {en},
urldate = {2025-12-08},
}
@misc{noauthor_why_nodate,
title = {Why {ALGOL} was an important programming language?},
url = {https://bulldogjob.com/readme/why-algol-was-an-important-programming-language},
abstract = {ALGOL is a more interesting language than you think, both in terms of its story and legacy.},
language = {en},
urldate = {2025-12-08},
}
@incollection{wexelblat_history_1978,
address = {New York, NY, USA},
title = {History of {LISP}},
copyright = {https://www.acm.org/publications/policies/copyright\_policy\#Background},
isbn = {9780127450407},
url = {http://dl.acm.org/doi/10.1145/800025.1198360},
language = {en},
urldate = {2025-12-08},
booktitle = {History of programming languages},
publisher = {ACM},
author = {McCarthy, John},
editor = {Wexelblat, Richard L.},
month = jun,
year = {1978},
doi = {10.1145/800025.1198360},
pages = {173--185},
}
@book{hecht_flow_1977,
address = {New York, NY},
series = {Programming languages series},
title = {Flow analysis of computer programs},
isbn = {9780444002105 9780444002167},
language = {eng},
number = {5},
publisher = {North-Holland},
author = {Hecht, Matthew S.},
year = {1977},
}
@misc{noauthor__nodate,
title = {Архитектура {Cray}-1 {\textbar} {PARALLEL}.{RU} - Информационно-аналитический центр по параллельным вычислениям},
url = {https://parallel.ru/history/cray1.html},
urldate = {2025-12-08},
}
@article{flynn_very_1966,
title = {Very high-speed computing systems},
volume = {54},
copyright = {https://ieeexplore.ieee.org/Xplorehelp/downloads/license-information/IEEE.html},
issn = {0018-9219},
url = {http://ieeexplore.ieee.org/document/1447203/},
doi = {10.1109/PROC.1966.5273},
number = {12},
urldate = {2025-12-08},
journal = {Proceedings of the IEEE},
author = {Flynn, M.J.},
year = {1966},
pages = {1901--1909},
}
@article{chang_support_2004,
title = {Support and optimization for parallel sparse programs with array intrinsics of {Fortran} 90},
volume = {30},
copyright = {https://www.elsevier.com/tdm/userlicense/1.0/},
issn = {01678191},
url = {https://linkinghub.elsevier.com/retrieve/pii/S0167819104000286},
doi = {10.1016/j.parco.2004.02.004},
language = {en},
number = {4},
urldate = {2025-12-08},
journal = {Parallel Computing},
author = {Chang, Rong-Guey and Chuang, Tyng-Ruey and Lee, Jenq Kuen},
month = apr,
year = {2004},
pages = {527--550},
}
@article{allen_automatic_1987,
title = {Automatic translation of {FORTRAN} programs to vector form},
volume = {9},
issn = {0164-0925, 1558-4593},
url = {https://dl.acm.org/doi/10.1145/29873.29875},
doi = {10.1145/29873.29875},
abstract = {The recent success of vector computers such as the Cray-1 and array processors such as those manufactured by Floating Point Systems has increased interest in making vector operations available to the FORTRAN programmer. The FORTRAN standards committee is currently considering a successor to FORTRAN 77, usually called FORTRAN 8x, that will permit the programmer to explicitly specify vector and array operations.
Although FORTRAN 8x will make it convenient to specify explicit vector operations in new programs, it does little for existing code. In order to benefit from the power of vector hardware, existing programs will need to be rewritten in some language (presumably FORTRAN 8x) that permits the explicit specification of vector operations. One way to avoid a massive manual recoding effort is to provide a translator that discovers the parallelism implicit in a FORTRAN program and automatically rewrites that program in FORTRAN 8x.
Such a translation from FORTRAN to FORTRAN 8x is not straightforward because FORTRAN DO loops are not always semantically equivalent to the corresponding FORTRAN 8x parallel operation. The semantic difference between these two constructs is precisely captured by the concept of
dependence
. A translation from FORTRAN to FORTRAN 8x preserves the semantics of the original program if it preserves the dependences in that program.
The theoretical background is developed here for employing data dependence to convert FORTRAN programs to parallel form. Dependence is defined and characterized in terms of the conditions that give rise to it; accurate tests to determine dependence are presented; and transformations that use dependence to uncover additional parallelism are discussed.},
language = {en},
number = {4},
urldate = {2025-12-08},
journal = {ACM Transactions on Programming Languages and Systems},
author = {Allen, Randy and Kennedy, Ken},
month = oct,
year = {1987},
pages = {491--542},
}
@inproceedings{mowry_design_1992,
address = {Boston Massachusetts USA},
title = {Design and evaluation of a compiler algorithm for prefetching},
isbn = {9780897915342},
url = {https://dl.acm.org/doi/10.1145/143365.143488},
doi = {10.1145/143365.143488},
language = {en},
urldate = {2025-12-08},
booktitle = {Proceedings of the fifth international conference on {Architectural} support for programming languages and operating systems},
publisher = {ACM},
author = {Mowry, Todd C. and Lam, Monica S. and Gupta, Anoop},
month = sep,
year = {1992},
pages = {62--73},
}
@misc{morgan_compiling_2018,
title = {Compiling {History} {To} {Understand} {The} {Future}},
url = {https://www.nextplatform.com/2018/11/02/compiling-history-to-understand-the-future/},
abstract = {If you want to understand where we are going with computer architectures and the compilers that drive them, it is instructive to look at how compilers},
language = {en-US},
urldate = {2025-12-08},
journal = {The Next Platform},
author = {Morgan, Timothy Prickett},
month = nov,
year = {2018},
}
@misc{noauthor_vectorization_nodate,
title = {Vectorization {Directives} {\textbar} {Cray} {Fortran} {Reference} {Manual} 8.{7A} {S}-3901},
url = {https://support.hpe.com/hpesc/public/docDisplay?docId=a00113909en_us&page=Vectorization_Directives.html&docLocale=en_US},
urldate = {2025-12-08},
}
@article{hoare_communicating_1978,
title = {Communicating sequential processes},
volume = {21},
issn = {0001-0782, 1557-7317},
url = {https://dl.acm.org/doi/10.1145/359576.359585},
doi = {10.1145/359576.359585},
abstract = {This paper suggests that input and output are basic primitives of programming and that parallel composition of communicating sequential processes is a fundamental program structuring method. When combined with a development of Dijkstra's guarded command, these concepts are surprisingly versatile. Their use is illustrated by sample solutions of a variety of a familiar programming exercises.},
language = {en},
number = {8},
urldate = {2025-12-08},
journal = {Communications of the ACM},
author = {Hoare, C. A. R.},
month = aug,
year = {1978},
pages = {666--677},
}
@article{nickolls_gpu_2010,
title = {The {GPU} {Computing} {Era}},
volume = {30},
copyright = {https://ieeexplore.ieee.org/Xplorehelp/downloads/license-information/IEEE.html},
issn = {0272-1732},
url = {http://ieeexplore.ieee.org/document/5446251/},
doi = {10.1109/MM.2010.41},
number = {2},
urldate = {2025-12-08},
journal = {IEEE Micro},
author = {Nickolls, John and Dally, William J},
month = mar,
year = {2010},
pages = {56--69},
}
@article{nickolls_scalable_2008,
title = {Scalable {Parallel} {Programming} with {CUDA}: {Is} {CUDA} the parallel programming model that application developers have been waiting for?},
volume = {6},
issn = {1542-7730, 1542-7749},
shorttitle = {Scalable {Parallel} {Programming} with {CUDA}},
url = {https://dl.acm.org/doi/10.1145/1365490.1365500},
doi = {10.1145/1365490.1365500},
abstract = {The advent of multicore CPUs and manycore GPUs means that mainstream processor chips are now parallel systems. Furthermore, their parallelism continues to scale with Moores law. The challenge is to develop mainstream application software that transparently scales its parallelism to leverage the increasing number of processor cores, much as 3D graphics applications transparently scale their parallelism to manycore GPUs with widely varying numbers of cores.},
language = {en},
number = {2},
urldate = {2025-12-08},
journal = {Queue},
author = {Nickolls, John and Buck, Ian and Garland, Michael and Skadron, Kevin},
month = mar,
year = {2008},
pages = {40--53},
}
@article{garland_parallel_2008,
title = {Parallel {Computing} {Experiences} with {CUDA}},
volume = {28},
copyright = {https://ieeexplore.ieee.org/Xplorehelp/downloads/license-information/IEEE.html},
issn = {0272-1732},
url = {http://ieeexplore.ieee.org/document/4626815/},
doi = {10.1109/MM.2008.57},
number = {4},
urldate = {2025-12-08},
journal = {IEEE Micro},
author = {Garland, Michael and Le Grand, Scott and Nickolls, John and Anderson, Joshua and Hardwick, Jim and Morton, Scott and Phillips, Everett and Zhang, Yao and Volkov, Vasily},
month = jul,
year = {2008},
pages = {13--27},
}
@inproceedings{munshi_opencl_2009,
address = {Stanford, CA, USA},
title = {The {OpenCL} specification},
copyright = {https://doi.org/10.15223/policy-029},
isbn = {9781467388733},
url = {https://ieeexplore.ieee.org/document/7478342/},
doi = {10.1109/HOTCHIPS.2009.7478342},
urldate = {2025-12-08},
booktitle = {2009 {IEEE} {Hot} {Chips} 21 {Symposium} ({HCS})},
publisher = {IEEE},
author = {Munshi, Aaftab},
month = aug,
year = {2009},
pages = {1--314},
}