(Book) Parallel Computing and Scientific Machine Learning (SciML): Methods and Applications

This repository has been forked off of the popular GitHub - mitmath/18337: 18.337 - Parallel Computing and Scientific Machine Learning course website to serve as a “book”/collection of lecture notes that can continue to grow apart from the yearly course structure. This website is something that can be depended on to stay for the known future. Additional content will continue to be compiled here and into the Julia-based Youtube channel:

Side Note: Looking for Website Help!!!

Note I am looking for any web developers that could help us turn this into a Franklin website with a nice sidebar and everything. Similarly this is needed for GitHub - SciML/SciMLBenchmarks.jl: Benchmarks for scientific machine learning (SciML) software, scientific AI, and (differential) equation solvers, which has a really terrible website:

https://benchmarks.sciml.ai/dev/markdown/MultiLanguage/wrapper_packages/

38 Likes

What do you think of adoping Books.jl for a similar website to Julia Data Science? I’d be happy to take a look if this is what you’re going for.

1 Like

That sounds like an interesting solution. I would love to get help converting it to something more suitable. Three years ago I didn’t plan for it to be such a thing :sweat_smile:

2 Likes

I’ll take a shot at it then :rocket:

6 Likes

When PDFs are not needed, skip Books.jl and go for PlutoStaticHTML.jl which is the basis for the Julia tutorials template. It’s easier to use, more reliable and has better parallel evaluation.

7 Likes

TL;DR

Finally came up with a clever way to do this with minimal changes to the lecture material. Check it out!

If this looks good then I can add the rest of the lectures and be done.

What I Did

Each Julia Markdown Document gets weave-d with a custom md2html template, and the generated output is used to build the page along with all other layout components (such as head, nav bar, and foot) through the Franklin.jl build process.

This seems to be the best route because it allows the lecture notes to remain untouched (except a couple additions to the front-matter). I considered using Books.jl, but this requires fairly significant changes to every code block. Converting every *.jmd to a Literate.jl script would take less time and use the builtin Franklin.jl support, but I decided not to spend time converting everything. These other routes are of course options, but I think this choice achieves a happy medium of clean site and minimal work. Any desired changes should be possible with some CSS tweaks.

9 Likes

Wow, that looks great! I think the template on the margins for the sidebar are a little messed up, but other than that it looks good to go.

1 Like

Awesome ! Also if we could bold the headings if would look nice

1 Like

The navigation sidebar on the left should not move when the page scrolls up or down.

Got the site to a place I am happy with. Any other thoughts or feedback?

Notes for lectures 1 & 12 need some attention, but everything else is pretty much done.

1 Like

This looks fantastic! What’s the issue with those two lectures?

I think a button to get to the source (Github) would be good to add.

1 Like

Agreed. Done. In more than one place to make it easy to find.

Nothing major. Lecture 1 just doesn’t have notes, but that’s no problem.
And Lecture 12 has a link to a PDF, but I couldn’t find an associated weave file. It is not a stopper, just won’t have an entry in the Notes nav bar.

Ready to be merged when you are.