Skip to content

Commit

Permalink
docs: Cite third-party software
Browse files Browse the repository at this point in the history
  • Loading branch information
jngrad committed Jun 27, 2023
1 parent 3b516b4 commit ad708fb
Show file tree
Hide file tree
Showing 3 changed files with 131 additions and 10 deletions.
121 changes: 121 additions & 0 deletions doc/bibliography.bib
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,19 @@ @Article{bindgen21a
pages = {083615},
}

@InProceedings{boehme16a,
author = {Boehme, David and Gamblin, Todd and Beckingsale, David and Bremer, Peer-Timo and Gimenez, Alfredo and LeGendre, Matthew and Pearce, Olga and Schulz, Martin},
title = {{C}aliper: Performance Introspection for {HPC} Software Stacks},
booktitle = {{SC} '16: Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis},
year = {2016},
note = {LLNL-CONF-699263},
publisher = {{IEEE} Press},
location = {Salt Lake City, Utah, USA},
month = nov,
isbn = {978-1-4673-8815-3},
pages = {550--560},
}

@Article{brady88a,
author = {Brady, John F. and Bossis, Georges},
title = {{S}tokesian Dynamics},
Expand Down Expand Up @@ -625,6 +638,19 @@ @Article{kesselheim11a
issn = {0010-4655},
}

@InProceedings{kluyver16a,
author = {Kluyver, Thomas and Ragan-Kelley, Benjamin and P{\'e}rez, Fernando and Granger, Brian E and Bussonnier, Matthias and Frederic, Jonathan and Kelley, Kyle and Hamrick, Jessica B and Grout, Jason and Corlay, Sylvain and Ivanov, Paul and Avila, Dami{\'a}n and Abdalla, Safia and Willing, Carol and {Jupyter Development Team}},
title = {{J}upyter {N}otebooks---a publishing format for reproducible computational workflows},
booktitle = {Positioning and Power in Academic Publishing: Players, Agents and Agendas},
year = {2016},
editor = {Loizides, Fernando and Schmidt, Birgit},
publisher = {IOS Press},
location = {Amsterdam},
isbn = {978-1-61499-649-1},
pages = {87--90},
doi = {10.3233/978-1-61499-649-1-87},
}

@Article{kolafa92a,
author = {Kolafa, Jiri and Perram, John W.},
title = {Cutoff Errors in the {E}wald Summation Formulae for Point Charge Systems},
Expand Down Expand Up @@ -759,6 +785,38 @@ @Article{martys99a
doi = {10.1103/PhysRevE.59.3733},
}

@TechReport{misc-cuda-gdb,
author = {{NVIDIA}},
title = {{CU-GDB}},
type = {User manual},
number = {Release 12.1},
year = {2023},
month = apr,
institution = {NVIDIA},
url = {https://docs.nvidia.com/cuda/pdf/cuda-gdb.pdf},
}

@Misc{misc-kernprof,
author = {Kern, Robert and Crall, Jon and Olsen, Brett and {OpenPyUtils community contributors}},
title = {{line_profiler} and {kernprof}},
year = {2008},
url = {https://github.com/pyutils/line_profiler},
}

@Misc{misc-perf,
author = {Torvalds, Linus},
title = {{perf}: {L}inux profiling with performance counters},
year = {2009},
url = {https://perf.wiki.kernel.org/index.php/Main_Page},
}

@Misc{misc-ubsan,
author = {{LLVM Developers}},
title = {Undefined Behavior Sanitizer},
year = {2017},
url = {https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html},
}

@Book{moshier89a,
title={Methods and Programs for Mathematical Functions},
author={Moshier, Stephen Lloyd Baluk},
Expand All @@ -779,6 +837,33 @@ @Article{moss96a
doi = {10.1351/pac199668122193},
}

@Article{nethercote03a,
author = {Nethercote, Nicholas and Seward, Julian},
title = {{V}algrind: A Program Supervision Framework},
journal = {Electronic Notes in Theoretical Computer Science},
year = {2003},
volume = {89},
number = {2},
month = oct,
pages = {44--66},
issn = {1571-0661},
doi = {10.1016/S1571-0661(04)81042-9},
}

@InProceedings{nethercote07a,
author = {Nethercote, Nicholas and Seward, Julian},
title = {{V}algrind: A Framework for Heavyweight Dynamic Binary Instrumentation},
booktitle = {Proceedings of the 28th {ACM} {SIGPLAN} Conference on Programming Language Design and Implementation},
year = {2007},
publisher = {Association for Computing Machinery},
location = {San Diego, California, USA},
isbn = {978-1-59593-633-2},
month = jun,
pages = {89--100},
doi = {10.1145/1250734.1250746},
address = {New York, New York, USA},
}

@Article{neumann85b,
author = {Neumann, Martin},
title = {The dielectric constant of water. Computer simulations with the {MCY} potential},
Expand Down Expand Up @@ -923,6 +1008,18 @@ @Book{schlick10a
publisher = {Springer New York},
}

@InProceedings{serebryany12a,
author = {Serebryany, Konstantin and Bruening, Derek and Potapenko, Alexander and Vyukov, Dmitry},
title = {{A}ddress{S}anitizer: A Fast Address Sanity Checker},
booktitle = {{USENIX} Annual Technical Conference},
year = {2012},
publisher = {USENIX Association},
location = {Boston, Massachusetts, USA},
month = jun,
url = {https://www.usenix.org/conference/atc12/addresssanitizer-fast-address-sanity-checker},
address = {Berkeley, California, USA},
}

@Article{smith81a,
author = {Smith, E. R.},
title = {Electrostatic energy in ionic crystals},
Expand Down Expand Up @@ -977,6 +1074,15 @@ @Article{sonnenschein85a
doi = {10.1016/0021-9991(85)90151-2},
}

@Book{stallman11a,
author = {Stallman, Richard and Pesch, Roland and Shebs, Stan},
title = {Debugging with {GDB}: The {GNU} source-level debugger},
year = {2011},
edition = {10th},
publisher = {{GNU} Press},
isbn = {978-0-9831592-3-0},
}

@PhdThesis{strebel99a,
author = {Strebel, Rolf},
title = {Pieces of software for the {C}oulombic m body problem},
Expand Down Expand Up @@ -1130,6 +1236,21 @@ @Article{weik19a
doi = {10.1140/epjst/e2019-800186-9},
}

@InProceedings{weidendorfer04a,
author = {Weidendorfer, Josef and Kowarschik, Markus and Trinitis, Carsten},
title = {A Tool Suite for Simulation Based Analysis of Memory Access Behavior},
booktitle = {Computational Science - ICCS 2004},
year = {2004},
editor = {Bubak, Marian and van Albada, Geert Dick and Sloot, Peter M. A. and Dongarra, Jack},
volume = {3038},
series = {Lecture Notes in Computer Science},
publisher = {Springer Berlin Heidelberg},
isbn = {978-3-540-24688-6},
pages = {440--447},
doi = {10.1007/978-3-540-24688-6_58},
address = {Berlin, Heidelberg},
}

@Article{widom63a,
author = {Widom, B.},
title = {Some topics in the theory of fluids},
Expand Down
2 changes: 1 addition & 1 deletion doc/sphinx/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ To run the samples and tutorials, start by installing the following packages:
The tutorials are written in the
`Notebook Format <https://nbformat.readthedocs.io/en/latest/>`__
version <= 4.4 and can be executed by any of these tools:
:cite:`kluyver16a` version <= 4.4 and can be executed by any of these tools:

* `Jupyter Notebook <https://jupyter-notebook.readthedocs.io/en/stable/notebook.html>`__
* `JupyterLab <https://jupyterlab.readthedocs.io/en/stable/>`__
Expand Down
18 changes: 9 additions & 9 deletions doc/sphinx/running.rst
Original file line number Diff line number Diff line change
Expand Up @@ -603,7 +603,7 @@ GDB
sudo apt install gdb
The GNU Debugger (GDB) is used to observe and control
The GNU Debugger (GDB) :cite:`stallman11a` is used to observe and control
the execution of C++ applications. GDB can catch signals, suspend the
program execution at user-defined break points, expose the content of
C++ variables and run C++ functions that have no side effects.
Expand Down Expand Up @@ -728,7 +728,7 @@ CUDA-GDB
Requires a CUDA debug build, enabled with the CMake options
``-D ESPRESSO_BUILD_WITH_CUDA=ON -D CMAKE_BUILD_TYPE=Debug``.

The CUDA-GDB debugger is used to observe and control
The CUDA-GDB debugger :cite:`misc-cuda-gdb` is used to observe and control
the execution of CUDA applications. CUDA-GDB can catch signals, suspend the
program execution at user-defined break points and expose values in CUDA
variables. When a signal is caught inside a CUDA kernel, the stack trace
Expand All @@ -745,7 +745,7 @@ ASAN
Requires specific compiler and linker flags, enabled with the CMake option
``-D ESPRESSO_BUILD_WITH_ASAN=ON -D CMAKE_BUILD_TYPE=RelWithAssert``.

The AddressSanitizer (ASAN) is a memory error detection
The AddressSanitizer (ASAN) :cite:`serebryany12a` is a memory error detection
tool. It detects memory leaks and bugs caused by dangling references.

For more details, please consult the tool online documentation [5]_.
Expand All @@ -760,7 +760,7 @@ UBSAN
Requires specific compiler and linker flags, enabled with the CMake option
``-D ESPRESSO_BUILD_WITH_UBSAN=ON -D CMAKE_BUILD_TYPE=RelWithAssert``.

The UndefinedBehaviorSanitizer (UBSAN) is a detection tool
The UndefinedBehaviorSanitizer (UBSAN) :cite:`misc-ubsan` is a detection tool
for undefined behavior. It detects bugs caused by dangling references,
array accesses out of bounds, signed integer overflows, etc.

Expand All @@ -776,7 +776,7 @@ Caliper
Requires external features ``CALIPER``, enabled with the CMake option
``-D ESPRESSO_BUILD_WITH_CALIPER=ON``.

Caliper [1]_ is a low-overhead annotation library for C++.
Caliper [1]_ :cite:`boehme16a` is a low-overhead annotation library for C++.
By default, |es| comes with several markers in performance-critical parts
of the main integration loop.

Expand Down Expand Up @@ -860,15 +860,15 @@ Valgrind
sudo apt install valgrind kcachegrind graphviz
python3 -m pip install --user gprof2dot
The Valgrind [2]_ framework brings several
The Valgrind [2]_ :cite:`nethercote07a,nethercote03a` framework brings several
tools to examine a program runtime performance.

.. _Callgrind:

Callgrind
"""""""""

The Callgrind [3]_ tool generates a graph of function
The Callgrind [3]_ :cite:`weidendorfer04a` tool generates a graph of function
calls. This type of instrumentation has a lot of overhead, therefore the time
spent in functions might not always be reliable, and the program execution
is slowed down significantly. To remediate the latter, it is common to
Expand Down Expand Up @@ -925,7 +925,7 @@ perf
sudo apt install perf
The perf [7]_ tool generates a graph of function calls
The perf [7]_ :cite:`misc-perf` tool generates a graph of function calls
with time measurements.
It requires privileges that can only be set as root.

Expand Down Expand Up @@ -987,7 +987,7 @@ kernprof
python3 -m pip install --user line_profiler
kernprof [8]_ is a low-overhead Python profiler.
kernprof [8]_ :cite:`misc-kernprof` is a low-overhead Python profiler.
It supports two instrumentation modes: ``line_profile`` and ``cProfile``.
The ``--builtin`` option injects a ``LineProfiler`` object and a ``profile``
function in the global namespace of the instrumented script.
Expand Down

0 comments on commit ad708fb

Please sign in to comment.