Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create page - Learn software performance engineering #224

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/_includes/partials/footer.njk
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<div class="d-flex mx-4">
<ul class="list-unstyled text-small">
<li><a class="link-secondary" href="/doc/users-guide/install">Install</a></li>
<li><a class="link-secondary" href="/posts/">Fast code</a></li>
<li><a class="link-secondary" href="/posts/">Blog</a></li>

</ul>
</div>
Expand Down
4 changes: 1 addition & 3 deletions src/_includes/partials/sidebar-blog.njk
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
{% set context = 'Fast code' %}

<div class="sidebar-start-items__item">
<nav class="bd-links" id="bd-docs-nav" aria-label="Section navigation">
<h5 class="w-100 p-2 rounded" style="margin-left: -0.4em; margin-top: 0; color: var(--midnight); background-color: var(--lime);">
{{ context }}
{{ metadata.blog.title }}
</h5>
{% set postslist = collections.posts %}
<div class="bd-toc-item navbar-nav">
Expand Down
3 changes: 1 addition & 2 deletions src/_includes/partials/sidebar-toc.njk
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{% set navPages = ['Blog', 'Documentation', 'Community', 'About us', 'Contribute'] %}
{% if eleventyNavigation.key in navPages %}
{% if eleventyNavigation.parent == 'Home' %}
{% set context = eleventyNavigation.key %}
{% else %}
{% set context = eleventyNavigation.parent %}
Expand Down
4 changes: 2 additions & 2 deletions src/blog.njk
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ background: bg-white
sidebar: blog
permalink: /posts/
eleventyNavigation:
key: Fast code
order: 2
key: Blog
order: 4
parent: Home
---

Expand Down
4 changes: 1 addition & 3 deletions src/css/users-guide.css
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@

main h2 {
color: white;
background-color: var(--blue);
background-color: #f6f4f4;
margin-left: -0.25em;
padding-left: 0.25em;
}
Expand Down
4 changes: 2 additions & 2 deletions src/doc/index.njk
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ layout: layouts/page.njk
eleventyNavigation:
key: Documentation
parent: Home
order: 4
order: 2
---

<p>You can browse the documentation with our <a href="/tags/">curated tags</a>.</p>

<p>See also our <a href="/posts/">Fast code</a> blog, which puts it all in context with stories about the latest developments in performance engineering.</p>
<p>See also our <a href="/posts/">blog</a>, which puts it all in context with stories about the latest developments in performance engineering.</p>

<div class="d-flex flex-wrap">
<div class="flex-fill m-2 p-2 rounded" style="background-color: var(--pst-color-surface); border-left: 0.2rem solid var(--yellow); border-top: 0.2rem solid var(--yellow);">
Expand Down
42 changes: 42 additions & 0 deletions src/learn.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
layout: layouts/page.njk
background: bg-white
sidebar: toc
title: Learn software performance engineering
eleventyNavigation:
key: Learn
parent: Home
order: 3
---

We are actively maintaining the following list of resources to help you learn ***software performance engineering*** &mdash; developing fast code for applications that run on modern multicore computers. If you have any questions, comments, or suggested additions, please [let us know](/contribute/contact/).

## Introductory materials
* [Introduction to Parallel Computing](https://hpc.llnl.gov/documentation/tutorials/introduction-parallel-computing-tutorial): This overview briefly introduces a broad range of topics and concludes with its own list of [recommended reading](https://hpc.llnl.gov/documentation/tutorials/introduction-parallel-computing-tutorial##References). (By Livermore Computing)
* [Parallel Computing for Beginners](https://www.learnpdc.org/PDCBeginners/): This free on-line textbook is designed to teach early computing students the basics of parallel and distributed computing. (By Joel C. Adams, Richard A. Brown, Suzanne J. Matthews, and Elizabeth Shoop of CSinParallel)

## Tutorials and interactive books

* [Programming Parallel Computers](https://ppc.cs.aalto.fi/): Open online version of the Aalto University course CS-E4580, which teaches how to write fast code for modern computers. (By Jukka Suomela)
* [Performance Ninja Class](https://github.com/dendibakh/perf-ninja): This 27-module curriculum focuses on low-level performance issues and requires basic C++ skills. (By Denis Bakhvalov)
* [Intermediate Parallel and Distributed Computing](https://www.learnpdc.org/IntermediatePDC/): This sequel to *Parallel Computing for Beginners* introduces numerous patterns of parallel and distributed computation. (By Elizabeth Shoop)
* [NERSC training materials](https://www.nersc.gov/users/training/): If you're looking for something specific (as opposed to following a curriculum), check out the archives of past training events hosted here. (For example, here is a [5-part series from 2023](https://www.nersc.gov/users/training/past-training-events/2023/hip-training-series-aug-oct-2023/) about programming GPUs with the HIP parallel computing platform.)
* [Parallel computing e-book](http://parallel.cs.jhu.edu/index.html): Johns Hopkins course EN 601.420/620, "Parallel computing for data science," includes a [Jupyter-based e-book](https://github.com/randalburns/pcds.2023) that you can install on your local machine.

## Books

### Principles and practice of writing fast code

* [Algorithms for Modern Hardware](https://en.algorithmica.org/hpc/) (2023) by Sergey Slotin
* [The Art of Multiprocessor Programming](https://www.amazon.com/Art-Multiprocessor-Programming-Maurice-Herlihy/dp/0124159508/) (2021) by Maurice Herlihy, Nir Shavit, Victor Luchangco, and Michael Spear
* [Performance Analysis and Tuning on Modern CPUs](https://book.easyperf.net/perf_book) (2020) by Denis Bakhvalov
* [Programming Models for Parallel Computing](https://mitpress.mit.edu/9780262528818/programming-models-for-parallel-computing/) (2015) by Pavan Balaji (ed)
* [Performance Solutions](http://www.perfeng.com/classic-site/psbook.htm) (2001) by Connie Smith

### Patterns of parallel programming

* [Structured Parallel Programming: Patterns for Efficient Computation](https://www.amazon.com/Structured-Parallel-Programming-Efficient-Computation/dp/0124159931) (2012) by Michael McCool, James Reinders, and Arch Robison
* [Patterns of Parallel Programming with .NET](https://download.microsoft.com/download/3/4/D/34D13993-2132-4E04-AE48-53D3150057BD/Patterns_of_Parallel_Programming_CSharp.pdf) (2010) by Stephen Toub
* [Patterns for Parallel Programming](https://www.amazon.com/Patterns-Parallel-Programming-Software-ebook/dp/B001UG3IQQ) (2004) by Timothy Mattson, Beverly Sanders, and Berna Massingill
* [Our Pattern Language](https://patterns.eecs.berkeley.edu/) by UC Berkeley

2 changes: 1 addition & 1 deletion src/posts/posts.11tydata.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ module.exports = {
eleventyComputed: {
eleventyNavigation: {
key: data => data.title,
parent: 'Fast code'
parent: 'Blog'
},
}
};
Binary file modified src/sphinx/docs/build/html/.doctrees/environment.pickle
Binary file not shown.
7 changes: 7 additions & 0 deletions src/sphinx/docs/build/html/_static/css/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
--pst-font-family-heading: var(--pst-font-family-base-system);
--pst-font-family-monospace: var(--pst-font-family-monospace-system);

--silk: #d1d6d6;
--lightgray: #e0e0e0;
--gray: #C0C0C0;
--gentlegray: #c8c3bc;
Expand Down Expand Up @@ -105,6 +106,12 @@ h2, h3, h4, h5, h6 {
margin-bottom: 0.4rem;
padding: 0.2rem 0 0.1rem;
}
html[data-theme="dark"] main h2 {
color: white;
background-color: var(--blue);
margin-left: -0.25em;
padding-left: 0.25em;
}
.bd-header {
background-color: var(--pst-color-navbar) !important;
}
Expand Down
7 changes: 7 additions & 0 deletions src/sphinx/docs/source/_static/css/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
--pst-font-family-heading: var(--pst-font-family-base-system);
--pst-font-family-monospace: var(--pst-font-family-monospace-system);

--silk: #d1d6d6;
--lightgray: #e0e0e0;
--gray: #C0C0C0;
--gentlegray: #c8c3bc;
Expand Down Expand Up @@ -105,6 +106,12 @@ h2, h3, h4, h5, h6 {
margin-bottom: 0.4rem;
padding: 0.2rem 0 0.1rem;
}
html[data-theme="dark"] main h2 {
color: white;
background-color: var(--blue);
margin-left: -0.25em;
padding-left: 0.25em;
}
.bd-header {
background-color: var(--pst-color-navbar) !important;
}
Expand Down