diff --git a/README.md b/README.md index 253fdd3a..c8fec28c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -i[![Build Status](https://travis-ci.com/uvarc/rc-website.svg?branch=master)](https://travis-ci.com/uvarc/rc-website) + # UVA Research Learning & Workshop Website @@ -7,7 +7,6 @@ i[![Build Status](https://travis-ci.com/uvarc/rc-website.svg?branch=master)](htt | https://staging.learning.rc.virginia.edu | https://www.learning.rc.virginia.edu | * [Developing](#developing) - * [Using Gitpod](#using-gitpod) * [Local Install](#local-install) * [Creating New Content](#creating-new-content) * [Methods for creating content](#two-methods-for-creating-content) @@ -27,8 +26,8 @@ i[![Build Status](https://travis-ci.com/uvarc/rc-website.svg?branch=master)](htt ### Local Install -* [Install](https://gohugo.io/overview/installing/) the HUGO binary on your local computer. This has been tested with version 0.74.x-extended. **You need the extended version.** Binaries for different operating systems can be downloaded from the Hugo GitHub repo: https://github.com/gohugoio/hugo/releases/tag/v0.74.3. -* Clone this website repository: `git clone git@github.com:uvarc/rc-learning.git`. The `master` branch is protected. New content has to be pushed to the `staging` branch. Use this command to clone the staging branch only: `git clone --single-branch -b staging git@github.com:uvarc/rc-learning.git`. +* [Install](https://gohugo.io/overview/installing/) the Hugo binary on your local computer. This has been tested with version 0.133.1-extended. **You need the extended version.** Binaries for different operating systems can be downloaded from the Hugo GitHub repo: https://github.com/gohugoio/hugo/releases/tag/v0.133.1 +* Clone this website repository: `git clone git@github.com:uvarc/rc-learning.git`. The `main` branch is protected. New content has to be pushed to the `staging` branch. Use this command to clone the staging branch only: `git clone --single-branch -b staging git@github.com:uvarc/rc-learning.git`. - - - @@ -84,9 +83,9 @@ Using the `date` metadata smartly, you can forward date any post or article. [Au `hugo server` will bring up the local hugo server and give you a preview URL `http://localhost:1313/`. If making many changes, open another terminal to keep the `hugo server` running as you edit. ### Publish content -Simply push `staging` back to GitHub. We're in the process of setting up the S3 buckets for hosting the content. +Simply push `staging` back to GitHub. -TravisCI will handle it from there and publish the content at the staging site, https://staging.learning.rc.virginia.edu. Pushing your content to the production website requires a PULL REQUEST. +The CI will handle it from there and publish the content at the staging site, https://staging.learning.rc.virginia.edu. Pushing your content to the production website requires a PULL REQUEST. > Remember that after pushing your changes back to the `staging` branch, the https://staging.rc.virginia.edu/ website will be updated within 1-2 minutes. Hold down the SHIFT key when reloading your browser to refresh your local cache. diff --git a/assets/js/academic-search.js b/assets/js/academic-search.js index de29e191..0dbff901 100644 --- a/assets/js/academic-search.js +++ b/assets/js/academic-search.js @@ -85,6 +85,7 @@ function searchAcademic(query, fuse) { function parseResults(query, results) { $.each( results, function(key, value) { let content_key = value.item.section; + let path = value.item.relpermalink; let content = ""; let snippet = ""; let snippetHighlights = []; @@ -124,8 +125,11 @@ function parseResults(query, results) { // Parse template. let templateData = { key: key, - title: value.item.title, + title: value.item.title || "(no title)", type: content_key, + // turn relative path to breadcrumbs ("page1 > page2") format, removing the last part of the path (the result's page name) + // screen readers see a comma instead of "greater than sign", to allow for a pause in speech between each segment + pagepath: path.split('/').filter(item => item !== '').slice(0, -1).join(', > '), relpermalink: value.item.relpermalink, snippet: snippet }; diff --git a/assets/scss/custom.scss b/assets/scss/custom.scss index bde63f88..cd55bc33 100644 --- a/assets/scss/custom.scss +++ b/assets/scss/custom.scss @@ -75,6 +75,7 @@ h6 { html { scroll-behavior: smooth; + scroll-padding-top: 100px; } /* Change the colors for the "light" button */ @@ -173,7 +174,7 @@ html { color: #ab0728; } -.alert-info { +.alert-info, .alert-note { background-color: #fafafa; border-color: #209cee; // the same color as the info icon } @@ -347,11 +348,19 @@ footer { .alert-warning { background-color: #550000; color: white; + code { + color: #8be9fd; + } } - .alert-info { + .alert-info, .alert-note { background-color: #12537e; color: white; + pre, + code { + color: white; + background-color: #44475aab; + } } .skip-to-main-content { @@ -374,4 +383,9 @@ footer { .badge-light { color: white; } + + .tag-cloud a:hover, + .tag-cloud a:focus { + color: hsl(231, 48%, 90%); + } } \ No newline at end of file diff --git a/config/_default/params.toml b/config/_default/params.toml index f5c33e53..f82306fc 100644 --- a/config/_default/params.toml +++ b/config/_default/params.toml @@ -58,7 +58,7 @@ description = "" # Enable source code highlighting? true/false # Documentation: https://sourcethemes.com/academic/docs/writing-markdown-latex/#highlighting-options highlight = true -highlight_languages = ["awk","bash","cmake","c","c++","fortran","dockerfile","java","julia","makefile","matlab","mathematica","maxima","perl","python","r","sas","scala","tex"] # Add support for highlighting additional languages +highlight_languages = ["awk","bash","cmake","c","cpp","fortran","dockerfile","java","julia","latex","makefile","matlab","mathematica","maxima","perl","python","r","sas","scala"] # Add support for highlighting additional languages highlight_style_light = "a11y-light" # For supported styles, see https://cdnjs.com/libraries/highlight.js/ highlight_style_dark = "a11y-dark" diff --git a/content/courses/containers-for-hpc/building-apptainer.md b/content/courses/containers-for-hpc/building-apptainer.md index 33e94464..73c396c6 100644 --- a/content/courses/containers-for-hpc/building-apptainer.md +++ b/content/courses/containers-for-hpc/building-apptainer.md @@ -60,8 +60,10 @@ Inspect the runscript before running an image! The default cache directory is `~/.apptainer`. If you are an active container user it can quickly fill up your home. You can change it to scratch: {{< code-snippet >}}export APPTAINER_CACHEDIR=/scratch/$USER/.apptainer{{< /code-snippet >}} Otherwise, remember to clean up periodically. -1. We have suppressed certain output from the `apptainer` command. To see the complete output, type `\apptainer`. +1. Request an ijob + {{< code-snippet >}}ijob -A hpc_training -p interactive -c 1 -t 2:0:0{{< /code-snippet >}} 1. Load the Apptainer module: `module load apptainer` +1. We have suppressed certain output from the `apptainer` command. To see the complete output, type `\apptainer`. ## Definition File @@ -487,7 +489,7 @@ Hints: {{< info >}}While PyTorch runs on a GPU, you do not need to build the container on a GPU.{{< /info >}} -{{< info >}}You will likely run out of memory when building large containers (over a few GBs). Request an [interactive job](https://www.rc.virginia.edu/userinfo/rivanna/slurm/#submitting-an-interactive-job) to build on a compute node in the `largemem` partition.{{< /info >}} +{{< info >}}You will likely run out of memory when building large containers (over a few GBs). Request an [interactive job](https://www.rc.virginia.edu/userinfo/rivanna/slurm/#submitting-an-interactive-job) with say `--mem=50G` to build on a compute node with 50 GB memory.{{< /info >}} ### R diff --git a/content/courses/containers-for-hpc/building-docker.md b/content/courses/containers-for-hpc/building-docker.md index e5a6df94..274944d4 100644 --- a/content/courses/containers-for-hpc/building-docker.md +++ b/content/courses/containers-for-hpc/building-docker.md @@ -1,5 +1,5 @@ --- -date : "2024-6-03T00:00:00" +date : "2024-06-03T00:00:00" title: Appendix 1 - Building Containers [Docker] toc: true type: book diff --git a/content/courses/containers-for-hpc/minimal.md b/content/courses/containers-for-hpc/minimal.md index b52b6ccc..417db9ab 100644 --- a/content/courses/containers-for-hpc/minimal.md +++ b/content/courses/containers-for-hpc/minimal.md @@ -1,5 +1,5 @@ --- -date : "2024-6-03T00:00:00-05:00" +date : "2024-06-03T00:00:00-05:00" title: Appendix 2 - Minimal Containers [Docker] toc: true type: book diff --git a/content/courses/containers-for-hpc/using.md b/content/courses/containers-for-hpc/using.md index 55acc33f..9cdd2dcf 100755 --- a/content/courses/containers-for-hpc/using.md +++ b/content/courses/containers-for-hpc/using.md @@ -14,6 +14,8 @@ Log on to our HPC cluster - Make sure you have a few GBs of free space - Run `allocations` - Check if you have `hpc_training` +- Request an interative job + {{< code-snippet >}}ijob -A hpc_training -p interactive -c 1 -t 2:0:0{{< /code-snippet >}} - Run `module load apptainer` --- diff --git a/content/courses/cpp-introduction/building.md b/content/courses/cpp-introduction/building.md index aa69708b..a149bf77 100644 --- a/content/courses/cpp-introduction/building.md +++ b/content/courses/cpp-introduction/building.md @@ -32,9 +32,9 @@ An Integrated Development Environment (IDE) combines an editor and a way to comp A well-known IDE for Microsoft Windows is Visual Studio. This is available through the Microsoft Store; it is not free for individuals. macOS uses Xcode as its native IDE. Xcode includes some compilers, particularly for Swift, but it can manage several other languages. Available at the App Store and free. -A full-featured cross-platform IDE is [Eclipse] (http://www.eclipse.org/). Free. +A full-featured cross-platform IDE is [Eclipse](http://www.eclipse.org/). Free. -A lighter-weight IDE for Windows and Linux is [Code::Blocks] (http://www.codeblocks.org/). Free. +A lighter-weight IDE for Windows and Linux is [Code::Blocks](http://www.codeblocks.org/). Free. Windows programmers using Intel's oneAPI distribution must also install [Visual Studio](https://visualstudio.microsoft.com/). diff --git a/content/courses/cpp-introduction/inheritance.md b/content/courses/cpp-introduction/inheritance.md index 2e632c9c..6aed465b 100644 --- a/content/courses/cpp-introduction/inheritance.md +++ b/content/courses/cpp-introduction/inheritance.md @@ -46,7 +46,7 @@ class Mammal: public Animal { We could then derive Antelope from Mammal. Further subdivisions would be possible (`class Ungulate` and so forth). Derived classes can continue like this in an _inheritance chain_ indefinitely, though it would be poor practice to set up more than a few links in the chain. -{{< diagram >}} +{{< diagram alt="A diagram showing how classes are inherited. Animal is the parent of Reptile and Mammal, and Mammal is the parent of Antelope.">}} graph TD; A(Animal) --> B(Reptile) A(Animal) --> C(Mammal) diff --git a/content/courses/cpp-introduction/linkers_libraries.md b/content/courses/cpp-introduction/linkers_libraries.md index 0af8afa3..94cfa6b5 100644 --- a/content/courses/cpp-introduction/linkers_libraries.md +++ b/content/courses/cpp-introduction/linkers_libraries.md @@ -101,4 +101,4 @@ If Geany is to run a multi-file executable then the main program file must be se The file ending in `.h` is called a _header file_. The best practice in C++ is to separate the _interface_ into a header file and the _implementation_ into the source file. We will discuss this, as well as the preprocessor commands, when we cover functions. -This process becomes increasingly cumbersome as projects grow in number and complexity of files. The most common way to manage projects is through the [make](courses/cpp-introduction/make.md) utility, which we will examine next. +This process becomes increasingly cumbersome as projects grow in number and complexity of files. The most common way to manage projects is through the [make](/courses/cpp-introduction/make.md) utility, which we will examine next. diff --git a/content/courses/fiji-image-processing/fiji-omero/index.md b/content/courses/fiji-image-processing/fiji-omero/index.md index 1e112287..d9575333 100644 --- a/content/courses/fiji-image-processing/fiji-omero/index.md +++ b/content/courses/fiji-image-processing/fiji-omero/index.md @@ -138,7 +138,7 @@ Let's create a new project and dataset through the OMERO web client. 3. Click on the blue folder icon of your new project and take note of the `Project ID`. We will need this to direct Fiji where to load data from or save data to. No right click on your blue project folder icon and create a new dataset. Right-click on the dataset icon and take note of the `Dataset ID`. After the project is generated, your user interface should look like this: - ![](/courses/fiji-omero/fiji-omero-datasetid.png) + ![](/courses/fiji-image-processing/fiji-omero/fiji-omero-datasetid.png) --- @@ -225,7 +225,7 @@ Before you begin, you need to know the dataset ID that the image should be linke 3. Go to `File` > `Export` > `OMERO...`. Enter the dataset ID you chose under step 1 and click `OK`. -{{< figure src="/courses/fiji-omero/fiji-omero-blobs-export.png" >}} +{{< figure src="/courses/fiji-image-processing/fiji-omero/fiji-omero-blobs-export.png" >}} 4. Click on the `Results` table window and go to `File` > `Save As`. Save the file as `Results.csv` on your computer. Repeat the same for the `Summary` table. @@ -255,7 +255,7 @@ To follow along, you can download the Jython scripts presented in this tutorial We'll be using the built-in **Script Editor** in Fiji to run our scripts. To start the script editor in Fiji go to menu `File` > `New` > `Script…`. -{{< figure src="/courses/fiji-omero/fiji-script-editor.png" >}} +{{< figure src="/courses/fiji-image-processing/fiji-omero/fiji-script-editor.png" >}} * The top pane provides the editor. Multiple scripts can be open at the same time and will show up as separate tabs. * The bottom pane shows output (e.g. produced by print statements) and any errors encountered during script execution. @@ -589,7 +589,7 @@ Let's try to upload an image from Fiji to OMERO. ### Creating Key:Value Annotations -{{< figure src="/courses/fiji-omero/fiji-omero-keyvalue.png" >}} +{{< figure src="/courses/fiji-image-processing/fiji-omero/fiji-omero-keyvalue.png" >}} OMERO allows you to link other pieces of information to your Project, Dataset, Screen, Plate or Image objects. This additional information is displayed on the right side in the OMERO web client, labeled under the `General` tab as `Image Details`, `Tags`, `Key-Value Pairs`, `Tables`, `Attachments`, `Comments`, and `Ratings`. In addition, there is the `Acquisition` tab that provides metadata information that was automatically extracted from the image file headers during import. For the remainder of this workshop, we will focus on `Key-Value` pairs and `Attachments`. The key-value pairs are implemented as a dictionary (or HashMaps) that can be used to annotate individual images or whole datasets/project or plates/screens with additional information. Such information may include experimental conditions etc.. @@ -717,7 +717,7 @@ The example script, `Omero_Batch_Processing.py`, consists of five key functions: **Remember that the gateway connection needs to be closed at the end of the script**. -{{< figure src="/courses/fiji-omero/fiji-omero-batchprocessing.png" >}} +{{< figure src="/courses/fiji-image-processing/fiji-omero/fiji-omero-batchprocessing.png" >}} To test this and see the process in action we will process a set of four images that has been deposited in the OMERO database. The setup is as follows: diff --git a/content/courses/fortran-introduction/_index.md b/content/courses/fortran-introduction/_index.md index e8c3114c..fab5d796 100644 --- a/content/courses/fortran-introduction/_index.md +++ b/content/courses/fortran-introduction/_index.md @@ -1,5 +1,5 @@ --- -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" title : "Programming in Modern Fortran" summary: "This short course is an introduction to programming in modern Fortran. Experience programming in some other language is helpful but not required." authors: [kah] diff --git a/content/courses/fortran-introduction/advanced_arrays.md b/content/courses/fortran-introduction/advanced_arrays.md index 2bed0f0b..333f31a3 100644 --- a/content/courses/fortran-introduction/advanced_arrays.md +++ b/content/courses/fortran-introduction/advanced_arrays.md @@ -1,6 +1,6 @@ --- title: "Advanced Array Usage" -date : "2021-04-5T00:00:00" +date : "2021-04-05T00:00:00" toc: true type: book weight: 42 diff --git a/content/courses/fortran-introduction/advanced_file_io.md b/content/courses/fortran-introduction/advanced_file_io.md index 4bf3b349..eadd0f73 100644 --- a/content/courses/fortran-introduction/advanced_file_io.md +++ b/content/courses/fortran-introduction/advanced_file_io.md @@ -1,6 +1,6 @@ --- title: "Advanced File IO" -date : "2021-04-5T00:00:00" +date : "2021-04-05T00:00:00" toc: true type: book weight: 55 diff --git a/content/courses/fortran-introduction/array_intrinsics.md b/content/courses/fortran-introduction/array_intrinsics.md index 8ae163f1..f9d43539 100644 --- a/content/courses/fortran-introduction/array_intrinsics.md +++ b/content/courses/fortran-introduction/array_intrinsics.md @@ -1,6 +1,6 @@ --- title: "Array Intrinsics" -date : "2021-04-5T00:00:00" +date : "2021-04-05T00:00:00" toc: true type: book weight: 43 diff --git a/content/courses/fortran-introduction/arrays.md b/content/courses/fortran-introduction/arrays.md index c4b41117..a43da813 100644 --- a/content/courses/fortran-introduction/arrays.md +++ b/content/courses/fortran-introduction/arrays.md @@ -1,6 +1,6 @@ --- title: "Introduction to Arrays" -date : "2021-04-5T00:00:00" +date : "2021-04-05T00:00:00" toc: true type: book weight: 41 diff --git a/content/courses/fortran-introduction/building.md b/content/courses/fortran-introduction/building.md index 83252e33..6071511c 100644 --- a/content/courses/fortran-introduction/building.md +++ b/content/courses/fortran-introduction/building.md @@ -1,6 +1,6 @@ --- title: "Compilers and IDEs" -date : "2021-04-5T00:00:00" +date : "2021-04-05T00:00:00" toc: true type: book weight: 11 diff --git a/content/courses/fortran-introduction/character_intrinsics.md b/content/courses/fortran-introduction/character_intrinsics.md index 4c62ec30..16b9498d 100644 --- a/content/courses/fortran-introduction/character_intrinsics.md +++ b/content/courses/fortran-introduction/character_intrinsics.md @@ -1,6 +1,6 @@ --- title: "Character Intrinsics and Conditionals" -date : "2021-04-5T00:00:00" +date : "2021-04-05T00:00:00" toc: true type: book weight: 44 diff --git a/content/courses/fortran-introduction/characters.md b/content/courses/fortran-introduction/characters.md index 2e7a28e8..c6d964a9 100644 --- a/content/courses/fortran-introduction/characters.md +++ b/content/courses/fortran-introduction/characters.md @@ -1,6 +1,6 @@ --- title: "Characters and Strings" -date : "2021-04-5T00:00:00" +date : "2021-04-05T00:00:00" toc: true type: book weight: 43 @@ -62,7 +62,7 @@ An allocatable string may be deallocated if necessary with the usual `DEALLOCATE DEALLOCATE(str) ``` -Prior to Fortran 2003, the standard defined a module `iso_varying_string`. Most compilers available now support the 2003 standard so will offer the standard variable string, but the iso_varying_string module provides a number of functions so may still be worthwhile. We will discuss standardized modules [later](courses/fortran-introduction/standard_modules). +Prior to Fortran 2003, the standard defined a module `iso_varying_string`. Most compilers available now support the 2003 standard so will offer the standard variable string, but the iso_varying_string module provides a number of functions so may still be worthwhile. We will discuss standardized modules [later](/courses/fortran-introduction/standard_modules). ## Substrings @@ -103,7 +103,7 @@ Hello world today ### String Length A useful string function, especially for variable-length strings, is `LEN(S)`. -A fixed-length string will always occupy the specified number of characters. The default is to left-justify non-blank characters in the field. This can be modified with [intrinsics](courses/fortran-introduction/character_intrinsics). +A fixed-length string will always occupy the specified number of characters. The default is to left-justify non-blank characters in the field. This can be modified with [intrinsics](/courses/fortran-introduction/character_intrinsics). **Exercises** * Declare character variables large enough to hold the indicated strings. Make full_title at least 5 characters longer than you think necessary. diff --git a/content/courses/fortran-introduction/classes.md b/content/courses/fortran-introduction/classes.md index 64229115..7c555b74 100644 --- a/content/courses/fortran-introduction/classes.md +++ b/content/courses/fortran-introduction/classes.md @@ -1,6 +1,6 @@ --- title: "Classes" -date : "2021-04-5T00:00:00" +date : "2021-04-05T00:00:00" toc: true type: book weight: 75 diff --git a/content/courses/fortran-introduction/conditionals.md b/content/courses/fortran-introduction/conditionals.md index 654e2949..87014305 100644 --- a/content/courses/fortran-introduction/conditionals.md +++ b/content/courses/fortran-introduction/conditionals.md @@ -1,6 +1,6 @@ --- title: "Conditionals" -date : "2021-04-5T00:00:00" +date : "2021-04-05T00:00:00" toc: true type: book weight: 31 diff --git a/content/courses/fortran-introduction/console_io.md b/content/courses/fortran-introduction/console_io.md index 04aeb579..e66cac72 100644 --- a/content/courses/fortran-introduction/console_io.md +++ b/content/courses/fortran-introduction/console_io.md @@ -1,6 +1,6 @@ --- title: "Console Input/Output" -date : "2021-04-5T00:00:00" +date : "2021-04-05T00:00:00" toc: true type: book weight: 51 @@ -72,7 +72,7 @@ In Fortran the PRINT statement always writes an end-of-line marker after all var Input values can be read from the command line. This is usually accomplished in an IDE through an option to `Run`. -We can read strings only. You must convert if necessary to a numerical type using internal read/write. See the discussion [earlier](courses/fortran-introduction/operators). +We can read strings only. You must convert if necessary to a numerical type using internal read/write. See the discussion [earlier](/courses/fortran-introduction/operators). The COMMAND_ARGUMENT_COUNT intrinsic returns the number of command-line options. For each one, we must call GET_COMMAND_ARGUMENT with its number and a character buffer variable. ```fortran diff --git a/content/courses/fortran-introduction/declarations.md b/content/courses/fortran-introduction/declarations.md index 19b542fc..6ee24057 100644 --- a/content/courses/fortran-introduction/declarations.md +++ b/content/courses/fortran-introduction/declarations.md @@ -1,6 +1,6 @@ --- title: "Variable Declarations" -date : "2021-04-5T00:00:00" +date : "2021-04-05T00:00:00" toc: true type: book weight: 22 diff --git a/content/courses/fortran-introduction/derived_types.md b/content/courses/fortran-introduction/derived_types.md index 219e7a9d..74a5b13e 100644 --- a/content/courses/fortran-introduction/derived_types.md +++ b/content/courses/fortran-introduction/derived_types.md @@ -1,6 +1,6 @@ --- title: "Derived Types" -date : "2021-04-5T00:00:00" +date : "2021-04-05T00:00:00" toc: true type: book weight: 73 diff --git a/content/courses/fortran-introduction/file_io.md b/content/courses/fortran-introduction/file_io.md index fd8f25b9..b4988cda 100644 --- a/content/courses/fortran-introduction/file_io.md +++ b/content/courses/fortran-introduction/file_io.md @@ -1,6 +1,6 @@ --- title: "File IO" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 53 diff --git a/content/courses/fortran-introduction/formatted_io.md b/content/courses/fortran-introduction/formatted_io.md index 74379242..201866e3 100644 --- a/content/courses/fortran-introduction/formatted_io.md +++ b/content/courses/fortran-introduction/formatted_io.md @@ -1,6 +1,6 @@ --- title: "Formatted Input/Output" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 52 diff --git a/content/courses/fortran-introduction/getting_started.md b/content/courses/fortran-introduction/getting_started.md index 17134c7e..2377878a 100644 --- a/content/courses/fortran-introduction/getting_started.md +++ b/content/courses/fortran-introduction/getting_started.md @@ -1,5 +1,5 @@ --- -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" title : "Starting with Fortran" toc: true type: book diff --git a/content/courses/fortran-introduction/interfaces.md b/content/courses/fortran-introduction/interfaces.md index b9bcd80a..d81d52d4 100644 --- a/content/courses/fortran-introduction/interfaces.md +++ b/content/courses/fortran-introduction/interfaces.md @@ -1,6 +1,6 @@ --- title: "Interfaces" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 62 diff --git a/content/courses/fortran-introduction/intrinsic_modules.md b/content/courses/fortran-introduction/intrinsic_modules.md index 1de9bc10..ed68071e 100644 --- a/content/courses/fortran-introduction/intrinsic_modules.md +++ b/content/courses/fortran-introduction/intrinsic_modules.md @@ -1,6 +1,6 @@ --- title: "Intrinsic Modules" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 72 diff --git a/content/courses/fortran-introduction/linkers_libraries.md b/content/courses/fortran-introduction/linkers_libraries.md index 89a1492a..5ea77ae4 100644 --- a/content/courses/fortran-introduction/linkers_libraries.md +++ b/content/courses/fortran-introduction/linkers_libraries.md @@ -1,6 +1,6 @@ --- title: "Linkers and Libraries" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 13 @@ -61,5 +61,5 @@ If Geany is to run a multi-file executable then the main program file must be se {{< figure src="/courses/fortran-introduction/img/GeanyFiles.png" width=500px caption="Executing the example program" >}} -This process becomes increasingly cumbersome as projects grow in number and complexity of files. The most common way to manage projects is through the [make](courses/fortran-introduction/make.md) utility, which we will examine next. +This process becomes increasingly cumbersome as projects grow in number and complexity of files. The most common way to manage projects is through the [make](/courses/fortran-introduction/make.md) utility, which we will examine next. diff --git a/content/courses/fortran-introduction/loops.md b/content/courses/fortran-introduction/loops.md index 5ae78199..d547972d 100644 --- a/content/courses/fortran-introduction/loops.md +++ b/content/courses/fortran-introduction/loops.md @@ -1,6 +1,6 @@ --- title: "Loops" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 33 diff --git a/content/courses/fortran-introduction/make.md b/content/courses/fortran-introduction/make.md index 3697d748..4a32f365 100644 --- a/content/courses/fortran-introduction/make.md +++ b/content/courses/fortran-introduction/make.md @@ -1,6 +1,6 @@ --- title: "Managing Projects with Make" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 14 diff --git a/content/courses/fortran-introduction/modules.md b/content/courses/fortran-introduction/modules.md index 6ed8d5cc..bf545c66 100644 --- a/content/courses/fortran-introduction/modules.md +++ b/content/courses/fortran-introduction/modules.md @@ -1,6 +1,6 @@ --- title: "Modules" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 71 diff --git a/content/courses/fortran-introduction/more_classes.md b/content/courses/fortran-introduction/more_classes.md index 397f951d..256b4418 100644 --- a/content/courses/fortran-introduction/more_classes.md +++ b/content/courses/fortran-introduction/more_classes.md @@ -1,6 +1,6 @@ --- title: "Data Hiding and Inheritance" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 76 diff --git a/content/courses/fortran-introduction/operators.md b/content/courses/fortran-introduction/operators.md index f487d27e..aeb427fe 100644 --- a/content/courses/fortran-introduction/operators.md +++ b/content/courses/fortran-introduction/operators.md @@ -1,6 +1,6 @@ --- title: "Operators, Expressions, and Type Conversions" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 24 diff --git a/content/courses/fortran-introduction/overloading.md b/content/courses/fortran-introduction/overloading.md index 32342980..17e046b9 100644 --- a/content/courses/fortran-introduction/overloading.md +++ b/content/courses/fortran-introduction/overloading.md @@ -1,6 +1,6 @@ --- title: "Overloading and Generic Programming" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 77 diff --git a/content/courses/fortran-introduction/primitive_types.md b/content/courses/fortran-introduction/primitive_types.md index 4fdd4413..775e9fff 100644 --- a/content/courses/fortran-introduction/primitive_types.md +++ b/content/courses/fortran-introduction/primitive_types.md @@ -1,6 +1,6 @@ --- title: "Variables and Types" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 21 diff --git a/content/courses/fortran-introduction/project1.md b/content/courses/fortran-introduction/project1.md index c2c1efc5..5e2b0056 100644 --- a/content/courses/fortran-introduction/project1.md +++ b/content/courses/fortran-introduction/project1.md @@ -1,6 +1,6 @@ --- title: "Project 1" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 32 diff --git a/content/courses/fortran-introduction/project2.md b/content/courses/fortran-introduction/project2.md index 557797f7..85721083 100644 --- a/content/courses/fortran-introduction/project2.md +++ b/content/courses/fortran-introduction/project2.md @@ -1,6 +1,6 @@ --- title: "Project 2" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 45 diff --git a/content/courses/fortran-introduction/project3.md b/content/courses/fortran-introduction/project3.md index c455e069..ec2de575 100644 --- a/content/courses/fortran-introduction/project3.md +++ b/content/courses/fortran-introduction/project3.md @@ -1,6 +1,6 @@ --- title: "Project 3" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 56 diff --git a/content/courses/fortran-introduction/project4.md b/content/courses/fortran-introduction/project4.md index 3a9674ad..dcb957e7 100644 --- a/content/courses/fortran-introduction/project4.md +++ b/content/courses/fortran-introduction/project4.md @@ -1,6 +1,6 @@ --- title: "Project 4" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 72 diff --git a/content/courses/fortran-introduction/project5.md b/content/courses/fortran-introduction/project5.md index 9c745ae1..26ed99f0 100644 --- a/content/courses/fortran-introduction/project5.md +++ b/content/courses/fortran-introduction/project5.md @@ -1,6 +1,6 @@ --- title: "Project 5" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 74 diff --git a/content/courses/fortran-introduction/project6.md b/content/courses/fortran-introduction/project6.md index be898212..09504169 100644 --- a/content/courses/fortran-introduction/project6.md +++ b/content/courses/fortran-introduction/project6.md @@ -1,6 +1,6 @@ --- title: "Project 6" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 76 diff --git a/content/courses/fortran-introduction/project7.md b/content/courses/fortran-introduction/project7.md index 134d3e88..39931cff 100644 --- a/content/courses/fortran-introduction/project7.md +++ b/content/courses/fortran-introduction/project7.md @@ -1,6 +1,6 @@ --- title: Project 7 -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book draft: false diff --git a/content/courses/fortran-introduction/scope.md b/content/courses/fortran-introduction/scope.md index 978f7e58..8356f1a1 100644 --- a/content/courses/fortran-introduction/scope.md +++ b/content/courses/fortran-introduction/scope.md @@ -1,6 +1,6 @@ --- title: "Variable Scope" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 66 diff --git a/content/courses/fortran-introduction/setting_up.md b/content/courses/fortran-introduction/setting_up.md index 69307358..6f052edf 100644 --- a/content/courses/fortran-introduction/setting_up.md +++ b/content/courses/fortran-introduction/setting_up.md @@ -1,6 +1,6 @@ --- title: "Setting Up Your Environment" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 12 diff --git a/content/courses/fortran-introduction/statements.md b/content/courses/fortran-introduction/statements.md index 6a832988..dad2be7f 100644 --- a/content/courses/fortran-introduction/statements.md +++ b/content/courses/fortran-introduction/statements.md @@ -1,6 +1,6 @@ --- title: "Statements" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 25 diff --git a/content/courses/fortran-introduction/subprogram_args.md b/content/courses/fortran-introduction/subprogram_args.md index 19b9d5bc..438f3a02 100644 --- a/content/courses/fortran-introduction/subprogram_args.md +++ b/content/courses/fortran-introduction/subprogram_args.md @@ -1,6 +1,6 @@ --- title: "Subprogram Arguments" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 63 diff --git a/content/courses/fortran-introduction/subprogram_arrays.md b/content/courses/fortran-introduction/subprogram_arrays.md index cf819d9c..dce03dac 100644 --- a/content/courses/fortran-introduction/subprogram_arrays.md +++ b/content/courses/fortran-introduction/subprogram_arrays.md @@ -1,6 +1,6 @@ --- title: "Array Arguments" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 64 diff --git a/content/courses/fortran-introduction/subprogram_atts.md b/content/courses/fortran-introduction/subprogram_atts.md index 53b5f437..423b6399 100644 --- a/content/courses/fortran-introduction/subprogram_atts.md +++ b/content/courses/fortran-introduction/subprogram_atts.md @@ -1,6 +1,6 @@ --- title: "Subprogram Attributes" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 65 diff --git a/content/courses/fortran-introduction/subprograms.md b/content/courses/fortran-introduction/subprograms.md index 1a8628c2..45f1120a 100644 --- a/content/courses/fortran-introduction/subprograms.md +++ b/content/courses/fortran-introduction/subprograms.md @@ -1,6 +1,6 @@ --- title: "Subprograms" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 61 @@ -84,7 +84,7 @@ z=4.*myfunc(var1,var2,var3) ``` As for subroutines, the names of the actual arguments need not be the same as those of the dummies, but the number and type must match. -Because functions have a type, they must be _declared_ like a variable in any program unit that invokes them. Better yet, use an [interface](courses/fortran-introduction/subprogram_args). +Because functions have a type, they must be _declared_ like a variable in any program unit that invokes them. Better yet, use an [interface](/courses/fortran-introduction/subprogram_args). Subroutines have no return type and cannot be declared. diff --git a/content/courses/fortran-introduction/update_old_code.md b/content/courses/fortran-introduction/update_old_code.md index c52fcd35..888754aa 100644 --- a/content/courses/fortran-introduction/update_old_code.md +++ b/content/courses/fortran-introduction/update_old_code.md @@ -1,6 +1,6 @@ --- title: "Updating Old Code" -date : "2021-04-5T00:00:00-05:00" +date : "2021-04-05T00:00:00-05:00" toc: true type: book weight: 100 diff --git a/content/courses/opencv/index.md b/content/courses/opencv/index.md index 494d1179..5e7b0022 100644 --- a/content/courses/opencv/index.md +++ b/content/courses/opencv/index.md @@ -3,7 +3,6 @@ title: "Scientific Image Processing with Python OpenCV" summary: "An introduction to scientific image processing with the Python OpenCV package. Topics include splitting and merging of color channels, morphological filters, image thresholding and segmentation." author: [khs] categories: ["Image Processing","Python"] -categories: ["Image_Processing","Python"] highlight_style: "github" date: 2022-10-27T00:00:00-05:00 diff --git a/content/courses/parallel-computing-introduction/distributed_mpi_basics.md b/content/courses/parallel-computing-introduction/distributed_mpi_basics.md index 78c17f92..1eb2f381 100644 --- a/content/courses/parallel-computing-introduction/distributed_mpi_basics.md +++ b/content/courses/parallel-computing-introduction/distributed_mpi_basics.md @@ -17,21 +17,21 @@ MPI must be initialized before we can invoke any other routines. This does not In the current MPI standard, all C/C\+\+ routines return an integer, the _error code_. The Fortran bindings are mostly subroutines and include this return value as the last parameter. -C/C++ +### C/C++ ```c MPI_Init(&argc, &argv); //more correct but rarely used //int ierr=MPI_Init(&argc, &argv); ``` -Fortran +### Fortran ```fortran integer ierr !code call MPI_Init(ierr) ``` -Python +### Python This tutorial applies only to the `mpi4py` package, which is the most popular MPI implementation for Python at this time. This package consists of multiple subpackages, of which the most important is `MPI`. Within the `MPI` subpackage are several _classes_. Most of the basic functionality of MPI is implemented as methods in the _Communicator_ class. @@ -51,20 +51,20 @@ C/C\+\+ programmers should notice that parameters to the MPI routines must be ca The first argument is the communicator; the number of processes in that communicator group is returned as an integer in the second argument. -C +### C ```c int nprocs; MPI_Comm_size(MPI_COMM_WORLD, &nprocs); ``` -Fortran +### Fortran ```fortran integer :: ierr, nprocs !other statements call MPI_Comm_size(MPI_COMM_WORLD, nprocs, ierr) ``` -Python +### Python ```python nprocs=comm.Get_size() ``` @@ -74,37 +74,37 @@ nprocs=comm.Get_size() The rank is always relative to the communicator. We are only considering the default MPI_COMM_WORLD in these examples. Process rank is an integer in the range 0, 1, …, (_nprocs_-1) returned through the second argument. -C +### C ```c int rank; MPI_Comm_rank(MPI_COMM_WORLD, &rank); ``` -Fortran +### Fortran ```fortran integer :: rank !other statements call MPI_Comm_rank(MPI_COMM_WORLD,rank,ierr) ``` -Python +### Python ```python rank=comm.Get_rank() ``` ## Shut Down MPI -C +### C ```c MPI_Finalize(); ``` -Fortran +### Fortran ```fortran call MPI_Finalize(ierr) ``` -Python +### Python ```python MPI.Finalize() ``` diff --git a/content/courses/parallel-computing-introduction/distributed_mpi_build_run.md b/content/courses/parallel-computing-introduction/distributed_mpi_build_run.md index fc4b55b2..ee9f9d5f 100644 --- a/content/courses/parallel-computing-introduction/distributed_mpi_build_run.md +++ b/content/courses/parallel-computing-introduction/distributed_mpi_build_run.md @@ -27,7 +27,7 @@ Each MPI program must include the `mpi.h` header file. If the MPI distribution w All new Fortran programs should use the `mpi` module provided by the MPI software. if the MPI distribution was installed correctly, the `mpif90` or equivalent will find the module and link to the correct library. -Any recent MPI will also provide an `mpi_f08` module. Its use is recommended, but we will wait till [later](courses/paralll-incomputing-introduction/distributed_mpi_nonblocking_exchange) to introduce it. This new module takes better advance of modern Fortran features such as types. In addition, the ubuiquitous "ierror" parameter at the end of most argument lists becomes an _optional_ argument in the mpi_f08 subroutine definitions. The compiler used must support at least the Fortran 2008 standard. +Any recent MPI will also provide an `mpi_f08` module. Its use is recommended, but we will wait till [later](/courses/parallel-computing-introduction/distributed_mpi_nonblocking_exchange/) to introduce it. This new module takes better advance of modern Fortran features such as types. In addition, the ubuiquitous "ierror" parameter at the end of most argument lists becomes an _optional_ argument in the mpi_f08 subroutine definitions. The compiler used must support at least the Fortran 2008 standard. {{< spoiler text="Fortran" >}} {{< code-download file="/courses/parallel-computing-introduction/codes/mpi1.f90" lang="fortran" >}} diff --git a/content/courses/parallel-computing-introduction/distributed_mpi_cart_comm.md b/content/courses/parallel-computing-introduction/distributed_mpi_cart_comm.md index 40d643dd..a3362e36 100644 --- a/content/courses/parallel-computing-introduction/distributed_mpi_cart_comm.md +++ b/content/courses/parallel-computing-introduction/distributed_mpi_cart_comm.md @@ -13,16 +13,16 @@ We have already [discussed](/courses/parallel-computing/distributed_mpi_higher_d We have learned how to create new communicators. MPI provides a specialized set of routines to generate a communicator with the row and column coordinates computed for us. As usual, it also can provide the rank relative to the new communicator. -Communication at the ends of the Certesian block can be periodic or nonperiodic. So far we've only considered nonperiodic boundaries, where for example the "left" of rank - is `MPI_PROC_NULL1, as is the "right" of the rank at the end of the row. We could also wrap the domain, so that data from rank 0 goes to rank nrows-1 and vice versa. +Communication at the ends of the Cartesian block can be periodic or nonperiodic. So far we've only considered nonperiodic boundaries, where for example the "left" of rank - is `MPI_PROC_NULL1, as is the "right" of the rank at the end of the row. We could also wrap the domain, so that data from rank 0 goes to rank nrows-1 and vice versa. -{{< figure src="/courses/parallel-computing-introduction/img/mpi_2d_periodic_bcspng" alt="Ranks laid out 3x2 with arrows between 0 and 2 and 1 and 5." caption="Periodic boundary conditions for a Cartesian layout." >}} +{{< figure src="/courses/parallel-computing-introduction/img/mpi_2d_periodic_bcs.png" alt="Ranks laid out 3x2 with arrows between 0 and 2 and 1 and 5." caption="Periodic boundary conditions for a Cartesian layout." >}} We will just summarize the types for the subprograms related to Cartesian communciator sytnax. -C++ - +## C++ +```c++ int ndims; - +``` dims is a 2-d int array with elements nrows, ncols periods is a 2-d int array with elements 0 for nonperiodic boundary along the zeroth dimension (rows in our example) and 1 for a periodic boundary along the first dimension (columns in our example). A periodic boundary wraps the identity of the neighbor to the "empty" side of a rank. @@ -41,7 +41,7 @@ grid_coords: two-dimensional int array whose values are the coordinates of the l ``` -Fortran 2008 +## Fortran 2008 Other than `periods` and `reorder`, the types are similar to the C++ arguments. If using the optional last `ierror` argument, it is integer as usual. @@ -57,7 +57,7 @@ reorder: logical .true. or .false. ``` -Python +## Python dimes: two-dimensional list, arguments nrows, ncols as for other languages. periods: two-dimensional Boolean with arguments True (periodic) or False (nonperiodic) similar to Fortran. @@ -72,7 +72,7 @@ grid_coords=grid_comm.coords ``` ## Example -{{< spoiler text="Fortran" >}} +{{< spoiler text="C++" >}} {{< code-download file="/courses/parallel-computing-introduction/codes/mpi_cart_topo.cxx" lang="c++" >}} {{< /spoiler >}} diff --git a/content/courses/parallel-computing-introduction/distributed_mpi_cart_exercise.md b/content/courses/parallel-computing-introduction/distributed_mpi_cart_exercise.md index 604a6865..ae3cad92 100644 --- a/content/courses/parallel-computing-introduction/distributed_mpi_cart_exercise.md +++ b/content/courses/parallel-computing-introduction/distributed_mpi_cart_exercise.md @@ -1,5 +1,5 @@ --- -title: "MPI Two Diemnsional Halo Exercise" +title: "MPI Two Dimensional Halo Exercise" toc: true type: docs weight: 375 @@ -11,18 +11,18 @@ menu: We can now pull all of our new knowledge together to let MPI do more of the work for us in the heated-plate problem. -**Exeercise** +**Exercise** In the language of your choice, write a heated-plate solution using two-dimensional data decomposition. Use MPI types and the MPI Cartesian communicator. Stay with blocking `sendrecv` for this exercise. Boundary conditions should be nonperiodic in both directions. -Check your rsults by plotting. If you wish, you can use the script contour2d.py +Check your rsults by plotting. If you wish, you can use the script contour2d.py: -{{< spoiler >}} -{{< code-download file=/courses/parallel-computing-introduction/scripts/contour2d.py" lang="python" >}} +{{< spoiler text="contour2d.py source code" >}} +{{< code-download file="/courses/parallel-computing-introduction/scripts/contour2d.py" lang="python" >}} {{< /spoiler >}} - +
The usage is -```no-highlight +```sh python contour2d.py -r numrows -c numcols basefilename ``` The files should be written by row with the name fitting the pattern @@ -37,15 +37,15 @@ out00 out01 out11 ... ## Example Solutions -{{< spoiler text="Fortran" >}} +{{< spoiler text="C++" >}} {{< code-download file="/courses/parallel-computing-introduction/solns/mpi_cartplate.cxx" lang="c++" >}} {{< /spoiler >}} {{< spoiler text="Fortran" >}} -{{< code-download file="/courses/parallel-computing-introduction/codes/mpi_cartplate.f90" lang="fortran" >}} +{{< code-download file="/courses/parallel-computing-introduction/solns/mpi_cartplate.f90" lang="fortran" >}} {{< /spoiler >}} {{< spoiler text="Python" >}} -{{< code-download file="/courses/parallel-computing-introduction/codes/mpi_cartplate.py" lang="python" >}} +{{< code-download file="/courses/parallel-computing-introduction/solns/mpi_cartplate.py" lang="python" >}} {{< /spoiler >}} diff --git a/content/courses/parallel-computing-introduction/distributed_mpi_comm_split.md b/content/courses/parallel-computing-introduction/distributed_mpi_comm_split.md index 707ff311..4083abce 100644 --- a/content/courses/parallel-computing-introduction/distributed_mpi_comm_split.md +++ b/content/courses/parallel-computing-introduction/distributed_mpi_comm_split.md @@ -42,10 +42,10 @@ Rewrite the group-creation exercise to use `MPI_Comm_split`. {{< /spoiler >}} {{< spoiler text="Fortran" >}} -{{< code-download file="/courses/parallel-computing-introduction/codes/mpi_comm_split.f90" lang="fortran" >}} +{{< code-download file="/courses/parallel-computing-introduction/solns/mpi_comm_split.f90" lang="fortran" >}} {{< /spoiler >}} {{< spoiler text="Python" >}} -{{< code-download file="/courses/parallel-computing-introduction/codes/mpi_comm_split.py" lang="python" >}} +{{< code-download file="/courses/parallel-computing-introduction/solns/mpi_comm_split.py" lang="python" >}} {{< /spoiler >}} diff --git a/content/courses/parallel-computing-introduction/distributed_mpi_global1.md b/content/courses/parallel-computing-introduction/distributed_mpi_global1.md index 5a89132d..faaaab18 100644 --- a/content/courses/parallel-computing-introduction/distributed_mpi_global1.md +++ b/content/courses/parallel-computing-introduction/distributed_mpi_global1.md @@ -85,7 +85,7 @@ call MPI_Scatter(vals,ncount,MPI_TYPE,rvals,ncount,MPI_TYPE,root,MPI_COMM_WORLD, {{< code-download file="/courses/parallel-computing-introduction/codes/scatter.f90" lang="fortran" >}} {{< /spoiler >}} -#### Python +### Python Both buffers should be Numpy arrays. The datatype is usually not required, and the root process is 0 by default, so that is an optional argument. ```python diff --git a/content/courses/parallel-computing-introduction/distributed_mpi_nearest_neighbor.md b/content/courses/parallel-computing-introduction/distributed_mpi_nearest_neighbor.md index 3c1253a3..0a08ca58 100644 --- a/content/courses/parallel-computing-introduction/distributed_mpi_nearest_neighbor.md +++ b/content/courses/parallel-computing-introduction/distributed_mpi_nearest_neighbor.md @@ -49,7 +49,7 @@ Perhaps we can swap the MPI_Send and MPI_Recv. The Send will pack up the message {{< code-download file="/courses/parallel-computing-introduction/codes/exchange_unsafe.py" lang=python >}} {{< /spoiler >}} -This pattern is _unsafe_ because the buffer may not be able to contain all the messages to be sent. On most modern systems, however, it will very often work, especially with short messages. For that reason it is a good idea to use built-in MPI tools as much as possible, such as [MPI_Sendrecv](courses/parallel-computing-introduction/distributed_mpi_sendrecv). +This pattern is _unsafe_ because the buffer may not be able to contain all the messages to be sent. On most modern systems, however, it will very often work, especially with short messages. For that reason it is a good idea to use built-in MPI tools as much as possible, such as [MPI_Sendrecv](/courses/parallel-computing-introduction/distributed_mpi_sendrecv). ### Safe diff --git a/content/courses/parallel-computing-introduction/distributed_mpi_nonblocking_comms.md b/content/courses/parallel-computing-introduction/distributed_mpi_nonblocking_comms.md index 0492e6cc..14f8396b 100644 --- a/content/courses/parallel-computing-introduction/distributed_mpi_nonblocking_comms.md +++ b/content/courses/parallel-computing-introduction/distributed_mpi_nonblocking_comms.md @@ -11,7 +11,7 @@ menu: So far we have only discussed _blocking_ sends and receives. Effectively, the receive is the blocking operation in this case, since the operation causes the execution to halt on the receiving process until confirmation has been returned that the message was received. This can result in a significant loss of performance, especially for codes that exchange messages in multiple directions. For a blocking send, the buffer variable may be reused once the procedure has returned. A blocking receive returns once the bits have been copied into the buffer variable. -However, as we have [seen](courses/parallel_computing_intro/distributed_mpi_sendmodes.md), MPI also provides _nonblocking_ point to point communications. Nonblocking communications initialize the messaging but do not wait for acknowledgements until explicitly requested. This means that computations can continue while communications take place in the background. The only requirement is that the message buffer must not change during the computations. No modification to the buffer should occur until after the request has been completed with an `MPI_Wait`, `MPI_Waitall`, `MPI_Waitany`, `MPI_Test`, `MPI_Testall`, or `MPI_Testany`. +However, as we have [seen](/courses/parallel_computing_intro/distributed_mpi_sendmodes.md), MPI also provides _nonblocking_ point to point communications. Nonblocking communications initialize the messaging but do not wait for acknowledgements until explicitly requested. This means that computations can continue while communications take place in the background. The only requirement is that the message buffer must not change during the computations. No modification to the buffer should occur until after the request has been completed with an `MPI_Wait`, `MPI_Waitall`, `MPI_Waitany`, `MPI_Test`, `MPI_Testall`, or `MPI_Testany`. Not all MPI communication procedures have both a blocking and a nonblocking version. In particular, we have so far discussed only blocking collective communications. Nonblocking collective procedures were introduced in the MPI3 standard. diff --git a/content/courses/parallel-computing-introduction/distributed_mpi_nonblocking_exchange.md b/content/courses/parallel-computing-introduction/distributed_mpi_nonblocking_exchange.md index 9a0ba0cc..a104ab12 100644 --- a/content/courses/parallel-computing-introduction/distributed_mpi_nonblocking_exchange.md +++ b/content/courses/parallel-computing-introduction/distributed_mpi_nonblocking_exchange.md @@ -9,7 +9,7 @@ menu: parent: Distributed-Memory Programming --- -Our first application of nonblocking point-to=point communications is to the famiamilar halo exchange problem. We can modify the solutions to the [Exercise](courses/parallel_computing_intro/distributed_mpi_sendrecv.md), +Our first application of nonblocking point-to=point communications is to the famiamilar halo exchange problem. We can modify the solutions to the [Exercise](/courses/parallel_computing_intro/distributed_mpi_sendrecv.md), We can easily convert the `Sendrecv` invocations to two `Irecv` and two `Isend` calls. With nonblocking sends and receives, we do not have to carefully manage the "sweeps" up and down or right to left; the MPI libary will handle that. This avoids the serialization of the blocking exchanges; this was the main purpose for the introduction of nonblocking communications. diff --git a/content/courses/parallel-computing-introduction/distributed_mpi_programs.md b/content/courses/parallel-computing-introduction/distributed_mpi_programs.md index ef736bcb..736c0614 100644 --- a/content/courses/parallel-computing-introduction/distributed_mpi_programs.md +++ b/content/courses/parallel-computing-introduction/distributed_mpi_programs.md @@ -9,19 +9,19 @@ menu: parent: Distributed-Memory Programming --- -MPI stands for _M_ essage _P_ assing _I_ nterface. It is a standard established by a committee of users and vendors. +MPI stands for *M*essage *P*assing *I*nterface. It is a standard established by a committee of users and vendors. ## Programming Languages MPI is written in C and ships with bindings for Fortran. Bindings have been written for many other languages, including Python and R. C\+\+ programmers should use the C functions. All of the C functions work the same for Fortran, with a slightly different syntax. They are mostly the same for Python but the most widely used set of Python bindings, `mpi4py`, was modeled on the deprecated C\+\+ bindings, as they are more "Pythonic." -Guides to the most-commonly used MPI routines for the three languages this course supports can be downloaded. +PDF guides to the most-commonly used MPI routines for the three languages this course supports can be downloaded. -[C/C++](/courses/parallel-computing-introduction/MPI_Guide_C.pdf) +[C/C++](/courses/parallel-computing-introduction/MPI_Guide_C.pdf "PDF of MPI Summary for C/C++") -[Fortran](/courses/parallel-computing-introduction/MPI_Guide_Fortran.pdf) +[Fortran](/courses/parallel-computing-introduction/MPI_Guide_Fortran.pdf "PDF of MPI Summary for Fortran") -[Python](/courses/parallel-computing-introduction/MPI_Guide_mpi4py.pdf) +[Python](/courses/parallel-computing-introduction/MPI_Guide_mpi4py.pdf "PDF of MPI Summary for Python with mpi4py") ## Processes and Messages diff --git a/content/courses/parallel-computing-introduction/distributed_mpi_project_set1.md b/content/courses/parallel-computing-introduction/distributed_mpi_project_set1.md index 2b7c6fac..3f19bd9f 100644 --- a/content/courses/parallel-computing-introduction/distributed_mpi_project_set1.md +++ b/content/courses/parallel-computing-introduction/distributed_mpi_project_set1.md @@ -63,7 +63,7 @@ It should be clear that the trapezoid rule is very easy to parallelize. The int Starting from the serial code in your language of choice, parallelize the trapezoid rule. Only rank 0 should read the input data; then it should broadcast appropriately to the other processes. Test for four processes. Note that the integral of the sine from 0 to $\pi$ has an exact value of 2, making it a good test case. -C++ and Fortran programmers: if you are not familiar with passing subprogram names as dummy variables, refer to our courses for [Fortran](/courses/fortran_introduction/subprogram_args) or [C++](/courses/cpp_introduction/subprogram_args). +C++ and Fortran programmers: if you are not familiar with passing subprogram names as dummy variables, refer to our courses for [Fortran](/courses/fortran-introduction/subprogram_args) or [C++](/courses/cpp-introduction/subprogram_args). #### Serial Codes {{< spoiler text="C++" >}} diff --git a/content/courses/parallel-computing-introduction/distributed_mpi_twod_exchange.md b/content/courses/parallel-computing-introduction/distributed_mpi_twod_exchange.md index 6a62c934..83ba01c8 100644 --- a/content/courses/parallel-computing-introduction/distributed_mpi_twod_exchange.md +++ b/content/courses/parallel-computing-introduction/distributed_mpi_twod_exchange.md @@ -3,7 +3,7 @@ title: "MPI Two-Dimensional Exchange" toc: true type: docs weight: 325 -date: "2025-8-8:00:00" +date: "2025-08-08T00:00:00" menu: parallel_programming: parent: Distributed-Memory Programming diff --git a/content/courses/python-high-performance/codes/__pycache__/dask_mpi.cpython-39.pyc b/content/courses/python-high-performance/codes/__pycache__/dask_mpi.cpython-39.pyc deleted file mode 100644 index 341425c0..00000000 Binary files a/content/courses/python-high-performance/codes/__pycache__/dask_mpi.cpython-39.pyc and /dev/null differ diff --git a/content/courses/python-high-performance/codes/__pycache__/fibonacci.cpython-39.pyc b/content/courses/python-high-performance/codes/__pycache__/fibonacci.cpython-39.pyc deleted file mode 100644 index baa22610..00000000 Binary files a/content/courses/python-high-performance/codes/__pycache__/fibonacci.cpython-39.pyc and /dev/null differ diff --git a/content/courses/python-high-performance/gpu_acceleration.md b/content/courses/python-high-performance/gpu_acceleration.md index 4aabe472..b90bddd9 100644 --- a/content/courses/python-high-performance/gpu_acceleration.md +++ b/content/courses/python-high-performance/gpu_acceleration.md @@ -126,4 +126,4 @@ This example of a matrix-multiplication kernel is taken from the Numba CUDA [doc ## RAPIDS RAPIDS is a set of libraries released by NVIDIA for its GPU architectures (Pascal or later). It builds upon CuPY and introduces a GPU DataFrame `cuDF`, and a package `cuML` that mostly replicates `scikit-learn`. -See our [RAPIDS workshop](/workshops/rapids) to learn more about using RAPIDS. +See our [RAPIDS workshop](/notes/rapids) to learn more about using RAPIDS. diff --git a/content/courses/python-introduction/__pycache__/hello_func.cpython-311.pyc b/content/courses/python-introduction/__pycache__/hello_func.cpython-311.pyc deleted file mode 100644 index 50eb1fa6..00000000 Binary files a/content/courses/python-introduction/__pycache__/hello_func.cpython-311.pyc and /dev/null differ diff --git a/content/courses/python-introduction/exercises/__pycache__/dow.cpython-39.pyc b/content/courses/python-introduction/exercises/__pycache__/dow.cpython-39.pyc deleted file mode 100644 index ed0284f5..00000000 Binary files a/content/courses/python-introduction/exercises/__pycache__/dow.cpython-39.pyc and /dev/null differ diff --git a/content/courses/python-introduction/exercises/__pycache__/test_dow.cpython-39-pytest-7.1.2.pyc b/content/courses/python-introduction/exercises/__pycache__/test_dow.cpython-39-pytest-7.1.2.pyc deleted file mode 100644 index 9b9bf278..00000000 Binary files a/content/courses/python-introduction/exercises/__pycache__/test_dow.cpython-39-pytest-7.1.2.pyc and /dev/null differ diff --git a/content/courses/python-introduction/ides.md b/content/courses/python-introduction/ides.md index 416b8af8..e3f460aa 100644 --- a/content/courses/python-introduction/ides.md +++ b/content/courses/python-introduction/ides.md @@ -12,7 +12,7 @@ menu: Our first example of an Integrated Development Environment, or __IDE__, is Spyder. Spyder is aimed specifically at Python. It is well suited to developing longer, more modular programs. -The authors generally recommend the standalone version referenced [earlier](courses/python-introduction/setting_up_environment). If using this application, always start it from your operating system's launcher. Remember that each environment must include the `ipython` package for it to be recognized by this application. +The authors generally recommend the standalone version referenced [earlier](/courses/python-introduction/setting_up_environment). If using this application, always start it from your operating system's launcher. Remember that each environment must include the `ipython` package for it to be recognized by this application. In an HPC system, or if not using the standalone version, you must activate the environment and spyder must be installed. Go to the Miniforge Prompt (Windows) or a terminal (Linux or MacOS) and type ```bash diff --git a/content/courses/python-introduction/scripts/__pycache__/mymodule.cpython-312.pyc b/content/courses/python-introduction/scripts/__pycache__/mymodule.cpython-312.pyc deleted file mode 100644 index 3eabf694..00000000 Binary files a/content/courses/python-introduction/scripts/__pycache__/mymodule.cpython-312.pyc and /dev/null differ diff --git a/content/courses/python-introduction/scripts/__pycache__/pytest_example.cpython-39-pytest-7.1.2.pyc b/content/courses/python-introduction/scripts/__pycache__/pytest_example.cpython-39-pytest-7.1.2.pyc deleted file mode 100644 index 47deda35..00000000 Binary files a/content/courses/python-introduction/scripts/__pycache__/pytest_example.cpython-39-pytest-7.1.2.pyc and /dev/null differ diff --git a/content/courses/python-introduction/scripts/__pycache__/test_class.cpython-39-pytest-7.1.2.pyc b/content/courses/python-introduction/scripts/__pycache__/test_class.cpython-39-pytest-7.1.2.pyc deleted file mode 100644 index 47d452f4..00000000 Binary files a/content/courses/python-introduction/scripts/__pycache__/test_class.cpython-39-pytest-7.1.2.pyc and /dev/null differ diff --git a/content/courses/python-introduction/scripts/__pycache__/testbook.cpython-39.pyc b/content/courses/python-introduction/scripts/__pycache__/testbook.cpython-39.pyc deleted file mode 100644 index 173c23d2..00000000 Binary files a/content/courses/python-introduction/scripts/__pycache__/testbook.cpython-39.pyc and /dev/null differ diff --git a/content/courses/python-introduction/scripts/__pycache__/testnb.cpython-39-pytest-7.1.2.pyc b/content/courses/python-introduction/scripts/__pycache__/testnb.cpython-39-pytest-7.1.2.pyc deleted file mode 100644 index 8f28750b..00000000 Binary files a/content/courses/python-introduction/scripts/__pycache__/testnb.cpython-39-pytest-7.1.2.pyc and /dev/null differ diff --git a/content/notes/bioinfo-intro/02-intro.md b/content/notes/bioinfo-intro/02-intro.md index 2ac68231..6811eb55 100644 --- a/content/notes/bioinfo-intro/02-intro.md +++ b/content/notes/bioinfo-intro/02-intro.md @@ -1,6 +1,6 @@ --- title: Bioinformatics -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z type: docs weight: 150 menu: diff --git a/content/notes/bioinfo-intro/03-analys-types.md b/content/notes/bioinfo-intro/03-analys-types.md index 5aec4dea..0c169db1 100644 --- a/content/notes/bioinfo-intro/03-analys-types.md +++ b/content/notes/bioinfo-intro/03-analys-types.md @@ -1,6 +1,6 @@ --- title: Types of Bioinformatics Analyses -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z type: docs weight: 200 menu: diff --git a/content/notes/bioinfo-intro/04-databases.md b/content/notes/bioinfo-intro/04-databases.md index 950ea9c0..54e2618c 100644 --- a/content/notes/bioinfo-intro/04-databases.md +++ b/content/notes/bioinfo-intro/04-databases.md @@ -1,6 +1,6 @@ --- title: Databases -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z type: docs weight: 250 menu: diff --git a/content/notes/bioinfo-intro/05-technologies.md b/content/notes/bioinfo-intro/05-technologies.md index db6bda9c..f14a3a3a 100644 --- a/content/notes/bioinfo-intro/05-technologies.md +++ b/content/notes/bioinfo-intro/05-technologies.md @@ -1,6 +1,6 @@ --- title: Sequencing Technologies -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z type: docs weight: 300 menu: diff --git a/content/notes/bioinfo-intro/06-pacbio.md b/content/notes/bioinfo-intro/06-pacbio.md index c4303a03..73014a9e 100644 --- a/content/notes/bioinfo-intro/06-pacbio.md +++ b/content/notes/bioinfo-intro/06-pacbio.md @@ -1,6 +1,6 @@ --- title: PacBio HiFi Reads -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z type: docs weight: 350 menu: diff --git a/content/notes/bioinfo-intro/07-fileformats.md b/content/notes/bioinfo-intro/07-fileformats.md index 94e6eb25..d4877b76 100644 --- a/content/notes/bioinfo-intro/07-fileformats.md +++ b/content/notes/bioinfo-intro/07-fileformats.md @@ -1,6 +1,6 @@ --- title: File Formats -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z type: docs weight: 400 menu: diff --git a/content/notes/bioinfo-intro/08-qualityscores.md b/content/notes/bioinfo-intro/08-qualityscores.md index 724f4008..2a42a0e4 100644 --- a/content/notes/bioinfo-intro/08-qualityscores.md +++ b/content/notes/bioinfo-intro/08-qualityscores.md @@ -1,6 +1,6 @@ --- title: Quality Scores -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z type: docs weight: 450 menu: diff --git a/content/notes/bioinfo-intro/09-sambam.md b/content/notes/bioinfo-intro/09-sambam.md index d4002b58..cbbebd0c 100644 --- a/content/notes/bioinfo-intro/09-sambam.md +++ b/content/notes/bioinfo-intro/09-sambam.md @@ -1,6 +1,6 @@ --- title: SAM/BAM Sequence Alignment -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z type: docs weight: 500 menu: diff --git a/content/notes/bioinfo-intro/10-fastqc-qualityreads.md b/content/notes/bioinfo-intro/10-fastqc-qualityreads.md index a93e4ea0..217037c2 100644 --- a/content/notes/bioinfo-intro/10-fastqc-qualityreads.md +++ b/content/notes/bioinfo-intro/10-fastqc-qualityreads.md @@ -1,6 +1,6 @@ --- title: Checking Read Quality - FASTQC -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z type: docs weight: 550 menu: diff --git a/content/notes/bioinfo-intro/11-rcresources.md b/content/notes/bioinfo-intro/11-rcresources.md index 4933805d..30cbc083 100644 --- a/content/notes/bioinfo-intro/11-rcresources.md +++ b/content/notes/bioinfo-intro/11-rcresources.md @@ -1,6 +1,6 @@ --- title: Research Computing Resources -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z type: docs weight: 600 menu: diff --git a/content/notes/bioinfo-intro/12-loggingin.md b/content/notes/bioinfo-intro/12-loggingin.md index 10f7556b..fe8d149c 100644 --- a/content/notes/bioinfo-intro/12-loggingin.md +++ b/content/notes/bioinfo-intro/12-loggingin.md @@ -1,6 +1,6 @@ --- title: Logging In -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z type: docs weight: 650 menu: diff --git a/content/notes/bioinfo-intro/13-allocations-storage.md b/content/notes/bioinfo-intro/13-allocations-storage.md index 76a3f9c6..1c27d375 100644 --- a/content/notes/bioinfo-intro/13-allocations-storage.md +++ b/content/notes/bioinfo-intro/13-allocations-storage.md @@ -1,6 +1,6 @@ --- title: HPC allocations & storage -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z type: docs weight: 700 menu: diff --git a/content/notes/bioinfo-intro/14-modules.md b/content/notes/bioinfo-intro/14-modules.md index 1c853a2d..45ea995e 100644 --- a/content/notes/bioinfo-intro/14-modules.md +++ b/content/notes/bioinfo-intro/14-modules.md @@ -1,6 +1,6 @@ --- title: Modules and Commands -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z type: docs weight: 750 menu: diff --git a/content/notes/bioinfo-intro/15-running-jobs.md b/content/notes/bioinfo-intro/15-running-jobs.md index 1940959e..de4d83ee 100644 --- a/content/notes/bioinfo-intro/15-running-jobs.md +++ b/content/notes/bioinfo-intro/15-running-jobs.md @@ -1,6 +1,6 @@ --- title: Running Jobs -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z type: docs weight: 800 menu: diff --git a/content/notes/bioinfo-intro/16-interactive.md b/content/notes/bioinfo-intro/16-interactive.md index 60372cd2..22424e57 100644 --- a/content/notes/bioinfo-intro/16-interactive.md +++ b/content/notes/bioinfo-intro/16-interactive.md @@ -1,6 +1,6 @@ --- title: Running FASTQC Interactively -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z type: docs weight: 850 menu: diff --git a/content/notes/bioinfo-intro/17-slurmscript.md b/content/notes/bioinfo-intro/17-slurmscript.md index 38025e67..dc6320a4 100644 --- a/content/notes/bioinfo-intro/17-slurmscript.md +++ b/content/notes/bioinfo-intro/17-slurmscript.md @@ -1,6 +1,6 @@ --- title: Running FASTQC with Slurm -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z type: docs weight: 870 menu: diff --git a/content/notes/bioinfo-intro/17a.md b/content/notes/bioinfo-intro/17a.md index 6ea3837f..d9ec5bec 100644 --- a/content/notes/bioinfo-intro/17a.md +++ b/content/notes/bioinfo-intro/17a.md @@ -1,6 +1,6 @@ --- title: Sequence Processing & Alignment -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z type: docs weight: 999 menu: diff --git a/content/notes/bioinfo-intro/19-trimming-sequences.md b/content/notes/bioinfo-intro/19-trimming-sequences.md index b16bed2c..a2d9cb13 100644 --- a/content/notes/bioinfo-intro/19-trimming-sequences.md +++ b/content/notes/bioinfo-intro/19-trimming-sequences.md @@ -1,6 +1,6 @@ --- title: Trimming Sequences -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z type: docs weight: 1000 menu: diff --git a/content/notes/bioinfo-intro/21-cutadapt-slurm.md b/content/notes/bioinfo-intro/21-cutadapt-slurm.md index d25d6f26..4c93aceb 100644 --- a/content/notes/bioinfo-intro/21-cutadapt-slurm.md +++ b/content/notes/bioinfo-intro/21-cutadapt-slurm.md @@ -1,6 +1,6 @@ --- title: Running Cutadapt with Slurm -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z type: docs weight: 1100 menu: diff --git a/content/notes/bioinfo-intro/22-bowtie2.md b/content/notes/bioinfo-intro/22-bowtie2.md index a9dbe116..7efea269 100644 --- a/content/notes/bioinfo-intro/22-bowtie2.md +++ b/content/notes/bioinfo-intro/22-bowtie2.md @@ -1,6 +1,6 @@ --- title: Bowtie2 - Sequence Alignment -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z type: docs weight: 1150 menu: diff --git a/content/notes/bioinfo-intro/23-bowtie-slurm.md b/content/notes/bioinfo-intro/23-bowtie-slurm.md index 60b8912e..dd755ffa 100644 --- a/content/notes/bioinfo-intro/23-bowtie-slurm.md +++ b/content/notes/bioinfo-intro/23-bowtie-slurm.md @@ -1,6 +1,6 @@ --- title: Running Bowtie2 - Slurm Script -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z type: docs weight: 1250 menu: diff --git a/content/notes/bioinfo-intro/24-samtools.md b/content/notes/bioinfo-intro/24-samtools.md index 2dcce4b0..df421368 100644 --- a/content/notes/bioinfo-intro/24-samtools.md +++ b/content/notes/bioinfo-intro/24-samtools.md @@ -1,6 +1,6 @@ --- title: Samtools -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z type: docs weight: 1350 menu: diff --git a/content/notes/bioinfo-intro/25-smrtlink.md b/content/notes/bioinfo-intro/25-smrtlink.md index cde51605..e4f25415 100644 --- a/content/notes/bioinfo-intro/25-smrtlink.md +++ b/content/notes/bioinfo-intro/25-smrtlink.md @@ -1,6 +1,6 @@ --- title: PacBio - SMRTLink -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z type: docs weight: 1400 menu: diff --git a/content/notes/bioinfo-intro/26-future-directions.md b/content/notes/bioinfo-intro/26-future-directions.md index 1805aea2..9ff5eb77 100644 --- a/content/notes/bioinfo-intro/26-future-directions.md +++ b/content/notes/bioinfo-intro/26-future-directions.md @@ -1,6 +1,6 @@ --- title: Future Directions -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z type: docs weight: 1450 menu: diff --git a/content/notes/bioinfo-intro/27-resources.md b/content/notes/bioinfo-intro/27-resources.md index 5ff7a904..3772f67d 100644 --- a/content/notes/bioinfo-intro/27-resources.md +++ b/content/notes/bioinfo-intro/27-resources.md @@ -1,6 +1,6 @@ --- title: More from RC -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z type: docs weight: 1500 menu: diff --git a/content/notes/bioinfo-intro/_index.md b/content/notes/bioinfo-intro/_index.md index 3ee6bc69..2d6c4c29 100644 --- a/content/notes/bioinfo-intro/_index.md +++ b/content/notes/bioinfo-intro/_index.md @@ -1,12 +1,11 @@ --- title: Introduction to Bioinformatics Tools for HPC -date: 2025-08-23-03:19:53Z +date: 2025-08-23T03:19:53Z authors: [mab] categories: ["Bioinformatics"] tags: ["Bioinformatics"] type: docs -weight: 30 -date: 2025-08-23-03:19:53Z +weight: 30 menu: bioinfo-intro: diff --git a/content/notes/containers/basics-dockerfile.md b/content/notes/containers/basics-dockerfile.md index e965e00a..157c6b04 100755 --- a/content/notes/containers/basics-dockerfile.md +++ b/content/notes/containers/basics-dockerfile.md @@ -1,11 +1,10 @@ --- title: Building a Docker Image -date: "2023-05-01:00:00Z" +date: "2023-05-01T00:00:00" draft: false # Is this a draft? true/false toc: false # Show table of contents? true/false type: docs # Do not modify. weight: 130 -date: "2023-05-01T00:00:00" menu: containers: parent: Container Basics diff --git a/content/notes/containers/basics-example.md b/content/notes/containers/basics-example.md index a59b5831..2483ed91 100755 --- a/content/notes/containers/basics-example.md +++ b/content/notes/containers/basics-example.md @@ -1,11 +1,10 @@ --- title: A Quick Example -date: "2023-05-01:00:00Z" +date: "2023-05-01T00:00:00" draft: false # Is this a draft? true/false toc: false # Show table of contents? true/false type: docs # Do not modify. weight: 110 -date: "2023-05-01T00:00:00" menu: containers: parent: Container Basics diff --git a/content/notes/containers/basics-webapps.md b/content/notes/containers/basics-webapps.md index bcaf1c93..c345bcbe 100755 --- a/content/notes/containers/basics-webapps.md +++ b/content/notes/containers/basics-webapps.md @@ -1,11 +1,10 @@ --- title: Running WebApps in a Container -date: "2023-05-01:00:00Z" +date: "2023-05-01T00:00:00" draft: false # Is this a draft? true/false toc: false # Show table of contents? true/false type: docs # Do not modify. weight: 120 -date: "2023-05-01T00:00:00" menu: containers: parent: Container Basics diff --git a/content/notes/containers/basics.md b/content/notes/containers/basics.md index a169aabd..591b4746 100755 --- a/content/notes/containers/basics.md +++ b/content/notes/containers/basics.md @@ -1,10 +1,9 @@ --- title: Container Basics -date: "2023-05-01:00:00Z" +date: "2023-05-01T00:00:00" draft: false # Is this a draft? true/false toc: false # Show table of contents? true/false type: docs # Do not modify. -date: "2023-05-01T00:00:00" weight: 100 menu: diff --git a/content/notes/containers/github-actions.md b/content/notes/containers/github-actions.md index e638f9d2..faf26a73 100755 --- a/content/notes/containers/github-actions.md +++ b/content/notes/containers/github-actions.md @@ -1,11 +1,10 @@ --- title: GitHub Actions -date: "2023-05-01:00:00Z" +date: "2023-05-01T00:00:00Z" draft: false # Is this a draft? true/false toc: false # Show table of contents? true/false type: docs # Do not modify. weight: 340 -date: "2023-05-01T00:00:00Z" menu: containers: parent: Version Control diff --git a/content/notes/containers/github-commands.md b/content/notes/containers/github-commands.md index 43522a9e..c76802ae 100755 --- a/content/notes/containers/github-commands.md +++ b/content/notes/containers/github-commands.md @@ -1,11 +1,10 @@ --- title: Common Git Commands -date: "2023-05-01:00:00Z" +date: "2023-05-01T00:00:00Z" draft: false # Is this a draft? true/false toc: false # Show table of contents? true/false type: docs # Do not modify. weight: 320 -date: "2023-05-01T00:00:00Z" menu: containers: parent: Version Control diff --git a/content/notes/containers/github-newrepo.md b/content/notes/containers/github-newrepo.md index b713a3e7..b7672c65 100755 --- a/content/notes/containers/github-newrepo.md +++ b/content/notes/containers/github-newrepo.md @@ -1,11 +1,10 @@ --- title: Creating a New GitHub Repository -date: "2023-05-01:00:00Z" +date: "2023-05-01T00:00:00Z" draft: false # Is this a draft? true/false toc: false # Show table of contents? true/false type: docs # Do not modify. weight: 310 -date: "2023-05-01T00:00:00Z" menu: containers: parent: Version Control diff --git a/content/notes/containers/github-updates.md b/content/notes/containers/github-updates.md index 0f515667..393b0b09 100755 --- a/content/notes/containers/github-updates.md +++ b/content/notes/containers/github-updates.md @@ -1,11 +1,10 @@ --- title: Updating our Image -date: "2023-05-01:00:00Z" +date: "2023-05-01T00:00:00Z" draft: true # Is this a draft? true/false toc: false # Show table of contents? true/false type: docs # Do not modify. weight: 330 -date: "2023-05-01T00:00:00Z" menu: containers: parent: Version Control diff --git a/content/notes/containers/github.md b/content/notes/containers/github.md index 66474815..2d6f8590 100755 --- a/content/notes/containers/github.md +++ b/content/notes/containers/github.md @@ -1,11 +1,10 @@ --- title: Version Control -date: "2023-05-01:00:00Z" +date: "2023-05-01T00:00:00Z" draft: false # Is this a draft? true/false toc: false # Show table of contents? true/false type: docs # Do not modify. weight: 300 -date: "2023-05-01T00:00:00Z" menu: containers: name: Version Control diff --git a/content/notes/containers/overview-purpose.md b/content/notes/containers/overview-purpose.md index 02ef04e9..2b6974c0 100755 --- a/content/notes/containers/overview-purpose.md +++ b/content/notes/containers/overview-purpose.md @@ -1,11 +1,10 @@ --- title: Why Use Containers? -date: "2023-05-01:00:00Z" +date: "2023-05-01T00:00:00Z" draft: false # Is this a draft? true/false toc: false # Show table of contents? true/false type: docs # Do not modify. weight: 20 -date: "2023-05-01T00:00:00Z" menu: containers: parent: Containers diff --git a/content/notes/containers/overview-services.md b/content/notes/containers/overview-services.md index bcdb72f4..28a6e202 100755 --- a/content/notes/containers/overview-services.md +++ b/content/notes/containers/overview-services.md @@ -1,11 +1,10 @@ --- title: Container Services -date: "2023-05-01:00:00Z" +date: "2023-05-01T00:00:00Z" draft: false # Is this a draft? true/false toc: false # Show table of contents? true/false type: docs # Do not modify. weight: 40 -date: "2023-05-01T00:00:00Z" menu: containers: parent: Containers diff --git a/content/notes/containers/overview-vms.md b/content/notes/containers/overview-vms.md index f185d711..11c06332 100755 --- a/content/notes/containers/overview-vms.md +++ b/content/notes/containers/overview-vms.md @@ -1,11 +1,10 @@ --- title: Containers vs VMs -date: "2023-05-01:00:00Z" +date: "2023-05-01T00:00:00Z" draft: false # Is this a draft? true/false toc: false # Show table of contents? true/false type: docs # Do not modify. weight: 30 -date: "2023-05-01T00:00:00Z" menu: containers: parent: Containers diff --git a/content/notes/containers/overview.md b/content/notes/containers/overview.md index 824482dd..9f5920b3 100755 --- a/content/notes/containers/overview.md +++ b/content/notes/containers/overview.md @@ -1,11 +1,10 @@ --- title: What Are Containers? -date: "2023-05-01:00:00Z" +date: "2023-05-01T00:00:00Z" draft: false # Is this a draft? true/false toc: false # Show table of contents? true/false type: docs # Do not modify. weight: 10 -date: "2023-05-01T00:00:00Z" menu: containers: parent: Containers diff --git a/content/notes/containers/shinyapp-debugging.md b/content/notes/containers/shinyapp-debugging.md index 7edc7cef..bd82c406 100755 --- a/content/notes/containers/shinyapp-debugging.md +++ b/content/notes/containers/shinyapp-debugging.md @@ -1,11 +1,10 @@ --- title: Running and Debugging -date: "2023-05-01:00:00Z" +date: "2023-05-01T00:00:00Z" draft: false # Is this a draft? true/false toc: false # Show table of contents? true/false type: docs # Do not modify. weight: 230 -date: "2023-05-01T00:00:00Z" menu: containers: parent: Serving a ShinyApp diff --git a/content/notes/containers/shinyapp-dockerbuild.md b/content/notes/containers/shinyapp-dockerbuild.md index 6a2d5fe5..cc2127fc 100755 --- a/content/notes/containers/shinyapp-dockerbuild.md +++ b/content/notes/containers/shinyapp-dockerbuild.md @@ -1,11 +1,10 @@ --- title: Building the App Image -date: "2023-05-01:00:00Z" +date: "2023-05-01T00:00:00Z" draft: false # Is this a draft? true/false toc: false # Show table of contents? true/false type: docs # Do not modify. weight: 220 -date: "2023-05-01T00:00:00Z" menu: containers: parent: Serving a ShinyApp diff --git a/content/notes/containers/shinyapp-dockerfile.md b/content/notes/containers/shinyapp-dockerfile.md index fd869aac..173e4b97 100755 --- a/content/notes/containers/shinyapp-dockerfile.md +++ b/content/notes/containers/shinyapp-dockerfile.md @@ -1,11 +1,10 @@ --- title: Writing the Dockerfile -date: "2023-05-01:00:00Z" +date: "2023-05-01T00:00:00Z" draft: false # Is this a draft? true/false toc: false # Show table of contents? true/false type: docs # Do not modify. weight: 210 -date: "2023-05-01T00:00:00Z" menu: containers: parent: Serving a ShinyApp @@ -27,7 +26,7 @@ In this section we are specifying that we are starting with the r-base Docker im The following packages and libraries will allow us to install Shiny server and various R packages that we need for our app. This list will cover most of your bases for most Shiny apps. If you find you need additional libraries, you can just add them to this list. How do you know if you're missing a library? You'll get an error message, and we will cover how to debug in a later section. -``` +```dockerfile # Install Ubuntu packages RUN apt-get update && apt-get install -y \ sudo \ @@ -53,7 +52,7 @@ RUN apt-get update && apt-get install -y \ This just installs Shiny server in your image. If you're not developing a Shiny app, no need to include it. If you *are* developing a Shiny app, no need to change it! -``` +```dockerfile # Install Shiny server RUN wget --no-verbose https://s3.amazonaws.com/rstudio-shiny-server-os-build/ubuntu-12.04/x86_64/VERSION -O "version.txt" && \ VERSION=$(cat version.txt) && \ @@ -66,7 +65,7 @@ RUN wget --no-verbose https://s3.amazonaws.com/rstudio-shiny-server-os-build/ubu Here we are installing all the packages that we need for our Shiny app. Again, if you're not developing a Shiny app, you can skip this part. -``` +```dockerfile ##### Install R packages that are required ###### ## CRAN packages RUN R -e "install.packages(c('shiny','shinydashboard','dplyr','ggplot2','fresh'))" @@ -75,7 +74,7 @@ RUN R -e "install.packages(c('shiny','shinydashboard','dplyr','ggplot2','fresh') ## 5. Copy configuration files to the Docker image These are just some files that make our Shiny app run. These will be in the directory that your app is in. These will be the same for all Shiny apps. -``` +```dockerfile # Copy configuration files into the Docker image COPY shiny-server.conf /etc/shiny-server/shiny-server.conf COPY shiny-server.sh /usr/bin/shiny-server.sh @@ -85,7 +84,7 @@ RUN rm -rf /srv/shiny-server/* ## 6. Copy your code to your app Ideally your code will be maintained within a GitHub repository (we will cover how to do this in a later section). Here we are cloning the GitHub repo and copying the contents to the shiny-server folder. -``` +```dockerfile # Get the app code RUN git clone https://github.com/uvarc/chickweight.git COPY chickweight/* /srv/shiny-server/ @@ -95,7 +94,7 @@ RUN rm -rf chickweight ## 7. Some R and Shiny Stuff This is just some stuff for setting R paths, etc. -``` +```dockerfile # Make the ShinyApp available at port 80 ENV R_HOME=/usr/lib/R ENV PATH=/usr/lib/R:/usr/lib/R/bin:$PATH @@ -107,10 +106,9 @@ RUN chown shiny.shiny /usr/bin/shiny-server.sh && chmod 755 /usr/bin/shiny-serve ## 8. Run the Shiny app! The CMD just tells the container what to run once it starts. This line starts up the Shiny server and app. -``` +```dockerfile # Run the server setup script CMD ["/usr/bin/shiny-server.sh"] ``` -Once we're done writing the Dockerfile, we save it as "Dockerfile" (no file extension). -``` \ No newline at end of file +Once we're done writing the Dockerfile, we save it as "Dockerfile" (no file extension). \ No newline at end of file diff --git a/content/notes/containers/shinyapp-dockerpush.md b/content/notes/containers/shinyapp-dockerpush.md index a72f7322..4c1637b2 100755 --- a/content/notes/containers/shinyapp-dockerpush.md +++ b/content/notes/containers/shinyapp-dockerpush.md @@ -1,11 +1,10 @@ --- title: Pushing our Image to a Container Registry -date: "2023-05-01:00:00Z" +date: "2023-05-01T00:00:00Z" draft: false # Is this a draft? true/false toc: false # Show table of contents? true/false type: docs # Do not modify. weight: 240 -date: "2023-05-01T00:00:00Z" menu: containers: parent: Serving a ShinyApp diff --git a/content/notes/containers/shinyapp.md b/content/notes/containers/shinyapp.md index a92d4bda..6e2c2050 100755 --- a/content/notes/containers/shinyapp.md +++ b/content/notes/containers/shinyapp.md @@ -1,11 +1,10 @@ --- title: Serving a ShinyApp -date: "2023-05-01:00:00Z" +date: "2023-05-01T00:00:00Z" draft: false # Is this a draft? true/false toc: false # Show table of contents? true/false type: docs # Do not modify. weight: 200 -date: "2023-05-01T00:00:00Z" menu: containers: name: Serving a ShinyApp diff --git a/content/notes/deep-learning-hpc/_index.md b/content/notes/deep-learning-hpc/_index.md index 9fa4d834..0aa2ca92 100644 --- a/content/notes/deep-learning-hpc/_index.md +++ b/content/notes/deep-learning-hpc/_index.md @@ -1,10 +1,9 @@ --- title: Introduction to Deep Learning Using HPC -date: 2024-06-28-01:51:43Z +date: 2024-06-28T01:51:43Z authors: [abd] type: docs weight: 1 -date: 2024-06-28-01:51:43Z menu: deep-learning-hpc: diff --git a/content/notes/deep-learning-hpc/access_dl_containers.md b/content/notes/deep-learning-hpc/access_dl_containers.md index f32288b4..394c60eb 100644 --- a/content/notes/deep-learning-hpc/access_dl_containers.md +++ b/content/notes/deep-learning-hpc/access_dl_containers.md @@ -1,6 +1,6 @@ --- title: Accessing Deep Learning Containers -date: 2024-06-28-01:51:43Z +date: 2024-06-28T01:51:43Z type: docs weight: 100 menu: diff --git a/content/notes/deep-learning-hpc/choose_gpu.md b/content/notes/deep-learning-hpc/choose_gpu.md index 62c8a72e..08a5fcd7 100644 --- a/content/notes/deep-learning-hpc/choose_gpu.md +++ b/content/notes/deep-learning-hpc/choose_gpu.md @@ -1,6 +1,6 @@ --- title: Choose a GPU -date: 2024-06-28-01:51:43Z +date: 2024-06-28T01:51:43Z type: docs weight: 850 toc: true diff --git a/content/notes/deep-learning-hpc/code_profiling.md b/content/notes/deep-learning-hpc/code_profiling.md index b4ea5859..650a16a7 100644 --- a/content/notes/deep-learning-hpc/code_profiling.md +++ b/content/notes/deep-learning-hpc/code_profiling.md @@ -1,6 +1,6 @@ --- title: Code Profiling -date: 2024-06-28-01:51:43Z +date: 2024-06-28T01:51:43Z type: docs weight: 750 toc: true diff --git a/content/notes/deep-learning-hpc/cpu_memory_cores.md b/content/notes/deep-learning-hpc/cpu_memory_cores.md index 2273f058..3b4b1e71 100644 --- a/content/notes/deep-learning-hpc/cpu_memory_cores.md +++ b/content/notes/deep-learning-hpc/cpu_memory_cores.md @@ -1,6 +1,6 @@ --- title: CPU Memory and Cores -date: 2024-06-28-01:51:43Z +date: 2024-06-28T01:51:43Z type: docs weight: 500 toc: true diff --git a/content/notes/deep-learning-hpc/cpu_resource_usage.md b/content/notes/deep-learning-hpc/cpu_resource_usage.md index 0d90c10f..cee4b6ab 100644 --- a/content/notes/deep-learning-hpc/cpu_resource_usage.md +++ b/content/notes/deep-learning-hpc/cpu_resource_usage.md @@ -1,6 +1,6 @@ --- title: CPU Resource Usage -date: 2024-06-28-01:51:43Z +date: 2024-06-28T01:51:43Z type: docs weight: 550 toc: true diff --git a/content/notes/deep-learning-hpc/dl_slurm_scripts.md b/content/notes/deep-learning-hpc/dl_slurm_scripts.md index 8dc8312a..f234f68e 100644 --- a/content/notes/deep-learning-hpc/dl_slurm_scripts.md +++ b/content/notes/deep-learning-hpc/dl_slurm_scripts.md @@ -1,6 +1,6 @@ --- title: DL Slurm Scripts -date: 2024-06-28-01:51:43Z +date: 2024-06-28T01:51:43Z type: docs weight: 900 toc: true diff --git a/content/notes/deep-learning-hpc/gpu_dl.md b/content/notes/deep-learning-hpc/gpu_dl.md index bdf026aa..52dbcf04 100644 --- a/content/notes/deep-learning-hpc/gpu_dl.md +++ b/content/notes/deep-learning-hpc/gpu_dl.md @@ -1,6 +1,6 @@ --- title: GPUs for Deep Learning -date: 2024-06-28-01:51:43Z +date: 2024-06-28T01:51:43Z type: docs weight: 300 toc: true diff --git a/content/notes/deep-learning-hpc/gpu_hpc.md b/content/notes/deep-learning-hpc/gpu_hpc.md index 5a70f4b5..f357b7e6 100644 --- a/content/notes/deep-learning-hpc/gpu_hpc.md +++ b/content/notes/deep-learning-hpc/gpu_hpc.md @@ -1,6 +1,6 @@ --- title: GPUs on HPC -date: 2024-06-28-01:51:43Z +date: 2024-06-28T01:51:43Z type: docs weight: 350 toc: true diff --git a/content/notes/deep-learning-hpc/gpu_resource_usage.md b/content/notes/deep-learning-hpc/gpu_resource_usage.md index 474fbb69..edff6def 100644 --- a/content/notes/deep-learning-hpc/gpu_resource_usage.md +++ b/content/notes/deep-learning-hpc/gpu_resource_usage.md @@ -1,6 +1,6 @@ --- title: GPU Resource Usage -date: 2024-06-28-01:51:43Z +date: 2024-06-28T01:51:43Z type: docs weight: 650 toc: true diff --git a/content/notes/deep-learning-hpc/hardware_overview.md b/content/notes/deep-learning-hpc/hardware_overview.md index 5623e8ca..40b76d19 100644 --- a/content/notes/deep-learning-hpc/hardware_overview.md +++ b/content/notes/deep-learning-hpc/hardware_overview.md @@ -1,6 +1,6 @@ --- title: Hardware Overview -date: 2024-06-28-01:51:43Z +date: 2024-06-28T01:51:43Z type: docs weight: 250 toc: true diff --git a/content/notes/deep-learning-hpc/need_help.md b/content/notes/deep-learning-hpc/need_help.md index ee8d4fd4..4080d45d 100644 --- a/content/notes/deep-learning-hpc/need_help.md +++ b/content/notes/deep-learning-hpc/need_help.md @@ -1,6 +1,6 @@ --- title: Need More Help? -date: 2024-06-28-01:51:43Z +date: 2024-06-28T01:51:43Z type: docs weight: 1200 toc: true diff --git a/content/notes/deep-learning-hpc/resource_allocation_tools.md b/content/notes/deep-learning-hpc/resource_allocation_tools.md index 2899b12a..d52a0908 100644 --- a/content/notes/deep-learning-hpc/resource_allocation_tools.md +++ b/content/notes/deep-learning-hpc/resource_allocation_tools.md @@ -1,6 +1,6 @@ --- title: Resource Allocation and Helpful Tools -date: 2024-06-28-01:51:43Z +date: 2024-06-28T01:51:43Z type: docs weight: 400 toc: true diff --git a/content/notes/dl-drug-discovery/DAC.md b/content/notes/dl-drug-discovery/DAC.md index 4956828e..59e40fea 100644 --- a/content/notes/dl-drug-discovery/DAC.md +++ b/content/notes/dl-drug-discovery/DAC.md @@ -1,6 +1,6 @@ --- title: Data Analytics Center -date: 2025-03-11-13:24:11Z +date: 2025-03-11T13:24:11Z type: docs weight: 900 menu: diff --git a/content/notes/dl-drug-discovery/_index.md b/content/notes/dl-drug-discovery/_index.md index 0a4cf77c..e47befe4 100644 --- a/content/notes/dl-drug-discovery/_index.md +++ b/content/notes/dl-drug-discovery/_index.md @@ -3,7 +3,7 @@ title: Deep Learning in Drug Discovery authors: [ppr] type: docs weight: 1 -date: "2025-03-11-13:24:11Z" +date: "2025-03-11T13:24:11Z" menu: dl-drug-discovery: --- diff --git a/content/notes/dl-drug-discovery/accelerating-discovery.md b/content/notes/dl-drug-discovery/accelerating-discovery.md index ca59fafd..e11ebeaf 100644 --- a/content/notes/dl-drug-discovery/accelerating-discovery.md +++ b/content/notes/dl-drug-discovery/accelerating-discovery.md @@ -1,6 +1,6 @@ --- title: Accelerating Discovery with AI -date: 2025-03-11-13:24:11Z +date: 2025-03-11T13:24:11Z type: docs weight: 180 menu: diff --git a/content/notes/dl-drug-discovery/application-1-chemprop.md b/content/notes/dl-drug-discovery/application-1-chemprop.md index f2ae4431..5e326e6f 100644 --- a/content/notes/dl-drug-discovery/application-1-chemprop.md +++ b/content/notes/dl-drug-discovery/application-1-chemprop.md @@ -1,6 +1,6 @@ --- title: Chemprop Application, Part I -date: 2025-03-11-13:24:11Z +date: 2025-03-11T13:24:11Z type: docs weight: 600 menu: diff --git a/content/notes/dl-drug-discovery/application-2-chemprop.md b/content/notes/dl-drug-discovery/application-2-chemprop.md index 4ca392ee..2d3c9d9b 100644 --- a/content/notes/dl-drug-discovery/application-2-chemprop.md +++ b/content/notes/dl-drug-discovery/application-2-chemprop.md @@ -1,6 +1,6 @@ --- title: Chemprop Application, Part II -date: 2025-03-11-13:24:11Z +date: 2025-03-11T13:24:11Z type: docs weight: 650 menu: diff --git a/content/notes/dl-drug-discovery/application-3-chemprop.md b/content/notes/dl-drug-discovery/application-3-chemprop.md index 87baf6f6..3d28ee0e 100644 --- a/content/notes/dl-drug-discovery/application-3-chemprop.md +++ b/content/notes/dl-drug-discovery/application-3-chemprop.md @@ -1,6 +1,6 @@ --- title: Chemprop Application, Part III -date: 2025-03-11-13:24:11Z +date: 2025-03-11T13:24:11Z type: docs weight: 700 menu: diff --git a/content/notes/dl-drug-discovery/application-chemprop.md b/content/notes/dl-drug-discovery/application-chemprop.md index 8b117b9d..05c390e3 100644 --- a/content/notes/dl-drug-discovery/application-chemprop.md +++ b/content/notes/dl-drug-discovery/application-chemprop.md @@ -1,6 +1,6 @@ --- title: Chemprop Application Case Study -date: 2025-03-11-13:24:11Z +date: 2025-03-11T13:24:11Z type: docs weight: 580 menu: diff --git a/content/notes/dl-drug-discovery/cheminformatics.md b/content/notes/dl-drug-discovery/cheminformatics.md index 4ec8d394..40c8ace5 100644 --- a/content/notes/dl-drug-discovery/cheminformatics.md +++ b/content/notes/dl-drug-discovery/cheminformatics.md @@ -1,6 +1,6 @@ --- title: Cheminformatics -date: 2025-03-11-13:24:11Z +date: 2025-03-11T13:24:11Z type: docs weight: 300 menu: diff --git a/content/notes/dl-drug-discovery/chemprop-slurm.md b/content/notes/dl-drug-discovery/chemprop-slurm.md index 4edb1cb6..53bae141 100644 --- a/content/notes/dl-drug-discovery/chemprop-slurm.md +++ b/content/notes/dl-drug-discovery/chemprop-slurm.md @@ -1,6 +1,6 @@ --- title: Chemprop With Slurm Scripts -date: 2025-03-11-13:24:11Z +date: 2025-03-11T13:24:11Z type: docs weight: 550 menu: diff --git a/content/notes/dl-drug-discovery/chemprop.md b/content/notes/dl-drug-discovery/chemprop.md index b4999c72..3aa4d4fd 100644 --- a/content/notes/dl-drug-discovery/chemprop.md +++ b/content/notes/dl-drug-discovery/chemprop.md @@ -1,6 +1,6 @@ --- title: Chemprop -date: 2025-03-11-13:24:11Z +date: 2025-03-11T13:24:11Z type: docs weight: 350 menu: diff --git a/content/notes/dl-drug-discovery/classification-regression.md b/content/notes/dl-drug-discovery/classification-regression.md index 02fb0178..19f094bd 100644 --- a/content/notes/dl-drug-discovery/classification-regression.md +++ b/content/notes/dl-drug-discovery/classification-regression.md @@ -1,6 +1,6 @@ --- title: Classification and Regression in ML -date: 2025-03-11-13:24:11Z +date: 2025-03-11T13:24:11Z type: docs weight: 400 menu: diff --git a/content/notes/dl-drug-discovery/computational-sims.md b/content/notes/dl-drug-discovery/computational-sims.md index 925a45fb..15346233 100644 --- a/content/notes/dl-drug-discovery/computational-sims.md +++ b/content/notes/dl-drug-discovery/computational-sims.md @@ -1,6 +1,6 @@ --- title: Computational Simulations -date: 2025-03-11-13:24:11Z +date: 2025-03-11T13:24:11Z type: docs weight: 250 menu: diff --git a/content/notes/dl-drug-discovery/dl-optimization.md b/content/notes/dl-drug-discovery/dl-optimization.md index b93c8738..78ea069b 100644 --- a/content/notes/dl-drug-discovery/dl-optimization.md +++ b/content/notes/dl-drug-discovery/dl-optimization.md @@ -1,6 +1,6 @@ --- title: Deep Learning in the Optimization Stage -date: 2025-03-11-13:24:11Z +date: 2025-03-11T13:24:11Z type: docs weight: 302 menu: diff --git a/content/notes/dl-drug-discovery/drug-disc.md b/content/notes/dl-drug-discovery/drug-disc.md index 74bc1358..f615738e 100644 --- a/content/notes/dl-drug-discovery/drug-disc.md +++ b/content/notes/dl-drug-discovery/drug-disc.md @@ -1,6 +1,6 @@ --- title: Drug Discovery -date: 2025-03-11-13:24:11Z +date: 2025-03-11T13:24:11Z type: docs weight: 150 menu: diff --git a/content/notes/dl-drug-discovery/featurization.md b/content/notes/dl-drug-discovery/featurization.md index 8535ed1c..4e853fc2 100644 --- a/content/notes/dl-drug-discovery/featurization.md +++ b/content/notes/dl-drug-discovery/featurization.md @@ -1,6 +1,6 @@ --- title: Featurization -date: 2025-03-11-13:24:11Z +date: 2025-03-11T13:24:11Z type: docs weight: 500 menu: diff --git a/content/notes/dl-drug-discovery/regression-example.md b/content/notes/dl-drug-discovery/regression-example.md index 14e3e5a7..a4072b3b 100644 --- a/content/notes/dl-drug-discovery/regression-example.md +++ b/content/notes/dl-drug-discovery/regression-example.md @@ -1,6 +1,6 @@ --- title: Regression in Drug Discovery -date: 2025-03-11-13:24:11Z +date: 2025-03-11T13:24:11Z type: docs weight: 410 menu: diff --git a/content/notes/dl-drug-discovery/smile-format.md b/content/notes/dl-drug-discovery/smile-format.md index cb08a2ec..e47266c4 100644 --- a/content/notes/dl-drug-discovery/smile-format.md +++ b/content/notes/dl-drug-discovery/smile-format.md @@ -1,6 +1,6 @@ --- title: Smile Format -date: 2025-03-11-13:24:11Z +date: 2025-03-11T13:24:11Z type: docs weight: 450 menu: diff --git a/content/notes/dl-drug-discovery/summary.md b/content/notes/dl-drug-discovery/summary.md index d390c7be..a43d8391 100644 --- a/content/notes/dl-drug-discovery/summary.md +++ b/content/notes/dl-drug-discovery/summary.md @@ -1,6 +1,6 @@ --- title: Summary -date: 2025-03-11-13:24:11Z +date: 2025-03-11T13:24:11Z type: docs weight: 850 menu: diff --git a/content/notes/dl-drug-discovery/therapeutics.md b/content/notes/dl-drug-discovery/therapeutics.md index 1dc6172e..5dc64354 100644 --- a/content/notes/dl-drug-discovery/therapeutics.md +++ b/content/notes/dl-drug-discovery/therapeutics.md @@ -1,6 +1,6 @@ --- title: Therapeutics -date: 2025-03-11-13:24:11Z +date: 2025-03-11T13:24:11Z type: docs weight: 200 menu: diff --git a/content/notes/genomics/1-history.md b/content/notes/genomics/1-history.md index 255677fa..9a2895ea 100644 --- a/content/notes/genomics/1-history.md +++ b/content/notes/genomics/1-history.md @@ -1,6 +1,6 @@ --- title: History of Genome Assembly -date: 2025-7-10T00:00:00 +date: 2025-07-10T00:00:00Z type: docs weight: 50 menu: diff --git a/content/notes/genomics/2-construction.md b/content/notes/genomics/2-construction.md index df9c34ff..71fb2617 100644 --- a/content/notes/genomics/2-construction.md +++ b/content/notes/genomics/2-construction.md @@ -1,6 +1,6 @@ --- title: Assembly Construction -date: 2025-7-10T00:00:00 +date: 2025-07-10T00:00:00Z type: docs weight: 100 menu: diff --git a/content/notes/genomics/3-technologies.md b/content/notes/genomics/3-technologies.md index acf28714..b80e8675 100644 --- a/content/notes/genomics/3-technologies.md +++ b/content/notes/genomics/3-technologies.md @@ -1,6 +1,6 @@ --- title: Sequencing Technologies -date: 2025-7-10T00:00:00 +date: 2025-07-10T00:00:00Z type: docs weight: 150 menu: diff --git a/content/notes/genomics/4-formats.md b/content/notes/genomics/4-formats.md index a1d9439c..24d24856 100644 --- a/content/notes/genomics/4-formats.md +++ b/content/notes/genomics/4-formats.md @@ -1,6 +1,6 @@ --- title: Sequence File Formats -date: 2025-7-10T00:00:00 +date: 2025-07-10T00:00:00Z type: docs weight: 200 menu: diff --git a/content/notes/genomics/5-genomes.md b/content/notes/genomics/5-genomes.md index 5afcb80a..75299336 100644 --- a/content/notes/genomics/5-genomes.md +++ b/content/notes/genomics/5-genomes.md @@ -1,6 +1,6 @@ --- title: Reference Genomes -date: 2025-7-10T00:00:00 +date: 2025-07-10T00:00:00Z type: docs weight: 250 menu: diff --git a/content/notes/genomics/6-modules.md b/content/notes/genomics/6-modules.md index 711f3a99..9305257a 100644 --- a/content/notes/genomics/6-modules.md +++ b/content/notes/genomics/6-modules.md @@ -1,6 +1,6 @@ --- title: HPC Overview on Loading Modules -date: 2025-7-10T00:00:00 +date: 2025-07-10T00:00:00Z type: docs weight: 300 menu: diff --git a/content/notes/genomics/7-0-demos.md b/content/notes/genomics/7-0-demos.md index 5d71454c..f1ac95e1 100644 --- a/content/notes/genomics/7-0-demos.md +++ b/content/notes/genomics/7-0-demos.md @@ -1,6 +1,6 @@ --- title: Software Demos -date: 2025-7-10T00:00:00 +date: 2025-07-10T00:00:00Z type: docs weight: 350 menu: diff --git a/content/notes/genomics/7-1-busco.md b/content/notes/genomics/7-1-busco.md index 9d4c70bc..cab797ce 100644 --- a/content/notes/genomics/7-1-busco.md +++ b/content/notes/genomics/7-1-busco.md @@ -1,6 +1,6 @@ --- title: BUSCO -date: 2025-7-10T00:00:00 +date: 2025-07-10T00:00:00Z type: docs weight: 400 menu: diff --git a/content/notes/genomics/7-2-repeatmasker.md b/content/notes/genomics/7-2-repeatmasker.md index 7351059d..e23a23c8 100644 --- a/content/notes/genomics/7-2-repeatmasker.md +++ b/content/notes/genomics/7-2-repeatmasker.md @@ -1,6 +1,6 @@ --- title: RepeatMasker -date: 2025-7-10T00:00:00 +date: 2025-07-10T00:00:00Z type: docs weight: 450 menu: diff --git a/content/notes/genomics/7-3-stringtie.md b/content/notes/genomics/7-3-stringtie.md index 238bee50..acda22b7 100644 --- a/content/notes/genomics/7-3-stringtie.md +++ b/content/notes/genomics/7-3-stringtie.md @@ -1,6 +1,6 @@ --- title: StringTie -date: 2025-7-10T00:00:00 +date: 2025-07-10T00:00:00Z type: docs weight: 500 menu: diff --git a/content/notes/genomics/7-4-smrtlink.md b/content/notes/genomics/7-4-smrtlink.md index a28aefba..3d7f7b90 100644 --- a/content/notes/genomics/7-4-smrtlink.md +++ b/content/notes/genomics/7-4-smrtlink.md @@ -1,6 +1,6 @@ --- title: SMRT Link -date: 2025-7-10T00:00:00 +date: 2025-07-10T00:00:00Z type: docs weight: 550 menu: diff --git a/content/notes/genomics/8-software.md b/content/notes/genomics/8-software.md index 4f011aee..e108686d 100644 --- a/content/notes/genomics/8-software.md +++ b/content/notes/genomics/8-software.md @@ -1,6 +1,6 @@ --- title: Additional Software -date: 2025-7-10T00:00:00 +date: 2025-07-10T00:00:00Z type: docs weight: 600 menu: diff --git a/content/notes/genomics/9-more.md b/content/notes/genomics/9-more.md index b365eb81..6ef38e5d 100644 --- a/content/notes/genomics/9-more.md +++ b/content/notes/genomics/9-more.md @@ -1,6 +1,6 @@ --- title: More Research Computing Resources -date: 2025-7-10T00:00:00 +date: 2025-07-10T00:00:00Z type: docs weight: 650 menu: diff --git a/content/notes/genomics/_index.md b/content/notes/genomics/_index.md index fad238fa..3fd48c79 100644 --- a/content/notes/genomics/_index.md +++ b/content/notes/genomics/_index.md @@ -3,7 +3,7 @@ title: Working with Genomic Data on HPC authors: [dat, mab] type: docs weight: 1 -date: "2025-7-10T00:00:00" +date: "2025-07-10T00:00:00" menu: genomics: --- diff --git a/content/notes/hpc-best-practices/1-cli-rivanna.md b/content/notes/hpc-best-practices/1-cli-rivanna.md index 59812422..987d6c1c 100644 --- a/content/notes/hpc-best-practices/1-cli-rivanna.md +++ b/content/notes/hpc-best-practices/1-cli-rivanna.md @@ -1,6 +1,6 @@ --- title: Command Line Interface to Rivanna -date: 2025-06-14-14:47:30Z +date: 2025-06-14T14:47:30Z type: docs weight: 50 toc: true diff --git a/content/notes/hpc-best-practices/10-git-github.md b/content/notes/hpc-best-practices/10-git-github.md index 54709999..34e2e547 100644 --- a/content/notes/hpc-best-practices/10-git-github.md +++ b/content/notes/hpc-best-practices/10-git-github.md @@ -1,6 +1,6 @@ --- title: Git and GitHub -date: 2025-06-14-14:16:03Z +date: 2025-06-14T14:16:03Z type: docs weight: 500 toc: true diff --git a/content/notes/hpc-best-practices/2-linux-commands.md b/content/notes/hpc-best-practices/2-linux-commands.md index 48503982..b42efff6 100644 --- a/content/notes/hpc-best-practices/2-linux-commands.md +++ b/content/notes/hpc-best-practices/2-linux-commands.md @@ -1,6 +1,6 @@ --- title: Linux Commands and Environment -date: 2025-06-14-14:47:30Z +date: 2025-06-14T14:47:30Z type: docs weight: 100 toc: true diff --git a/content/notes/hpc-best-practices/3-linux-tools.md b/content/notes/hpc-best-practices/3-linux-tools.md index 7052cb86..9819034d 100644 --- a/content/notes/hpc-best-practices/3-linux-tools.md +++ b/content/notes/hpc-best-practices/3-linux-tools.md @@ -1,6 +1,6 @@ --- title: Linux Tools For Text Processing -date: 2025-06-14-14:47:30Z +date: 2025-06-14T14:47:30Z type: docs weight: 150 toc: true diff --git a/content/notes/hpc-best-practices/4-linux-scripting.md b/content/notes/hpc-best-practices/4-linux-scripting.md index 7cb0c1d2..6ee6db85 100644 --- a/content/notes/hpc-best-practices/4-linux-scripting.md +++ b/content/notes/hpc-best-practices/4-linux-scripting.md @@ -1,6 +1,6 @@ --- title: Linux Shell Scripting -date: 2025-06-14-14:47:30Z +date: 2025-06-14T14:47:30Z type: docs weight: 200 toc: true diff --git a/content/notes/hpc-best-practices/5-rivanna-storage.md b/content/notes/hpc-best-practices/5-rivanna-storage.md index c50ed092..cf13ef20 100644 --- a/content/notes/hpc-best-practices/5-rivanna-storage.md +++ b/content/notes/hpc-best-practices/5-rivanna-storage.md @@ -1,6 +1,6 @@ --- title: Rivanna Storage Systems -date: 2025-06-14-14:47:30Z +date: 2025-06-14T14:47:30Z type: docs weight: 250 toc: true diff --git a/content/notes/hpc-best-practices/6-batch-slurm.md b/content/notes/hpc-best-practices/6-batch-slurm.md index b1748d34..a5b3c9d2 100644 --- a/content/notes/hpc-best-practices/6-batch-slurm.md +++ b/content/notes/hpc-best-practices/6-batch-slurm.md @@ -1,6 +1,6 @@ --- title: Batch Processing with SLURM Commands -date: 2025-06-14-14:47:30Z +date: 2025-06-14T14:47:30Z type: docs weight: 300 toc: true diff --git a/content/notes/hpc-best-practices/7-interactive.md b/content/notes/hpc-best-practices/7-interactive.md index 2caccfb8..58270300 100644 --- a/content/notes/hpc-best-practices/7-interactive.md +++ b/content/notes/hpc-best-practices/7-interactive.md @@ -1,6 +1,6 @@ --- title: Interactive Computing -date: 2025-06-14-14:47:30Z +date: 2025-06-14T14:47:30Z type: docs weight: 350 toc: true diff --git a/content/notes/hpc-best-practices/8-parallel-gpu.md b/content/notes/hpc-best-practices/8-parallel-gpu.md index d1177389..947611fc 100644 --- a/content/notes/hpc-best-practices/8-parallel-gpu.md +++ b/content/notes/hpc-best-practices/8-parallel-gpu.md @@ -1,6 +1,6 @@ --- title: Parallel/GPU Computing -date: 2025-06-14-14:47:30Z +date: 2025-06-14T14:47:30Z type: docs weight: 400 toc: true diff --git a/content/notes/hpc-best-practices/9-optimization.md b/content/notes/hpc-best-practices/9-optimization.md index a4a97a5e..a1ff7204 100644 --- a/content/notes/hpc-best-practices/9-optimization.md +++ b/content/notes/hpc-best-practices/9-optimization.md @@ -1,6 +1,6 @@ --- title: Performance Optimization -date: 2025-06-14-14:47:30Z +date: 2025-06-14T14:47:30Z type: docs weight: 450 toc: true diff --git a/content/notes/hpc-from-terminal/section1.md b/content/notes/hpc-from-terminal/section1.md index 994f4be3..9ca7dfc4 100644 --- a/content/notes/hpc-from-terminal/section1.md +++ b/content/notes/hpc-from-terminal/section1.md @@ -53,24 +53,24 @@ If your computer is a macOS or Linux system, you log in with ```bash ssh -Y mst3k@login.hpc.virginia.edu ``` -Throughout this tutorial we will use `mst3k` as our example user ID. You should substitute your own. The option `-Y` allows access to graphical applications and requires that an _X11 server_ application must be installed on your computer. This should be the default for Linux, but macOS users must install [XQuartz](https://xquartz.org) before this command-line option will be useful. +Throughout this tutorial we will use `mst3k` as our example user ID. You should substitute your own. The option `-Y` allows access to graphical applications and requires that an _X11 server_ application must be installed on your computer. This should be the default for Linux, but macOS users must install [XQuartz](https://xquartz.org "The official XQuartz website") before this command-line option will be useful. ### Graphical Applications The command-line secure shell is not the only option for accessing the HPC system. Windows users in particular may wish to use other methods, since although ssh is available for it, Windows is not particularly friendly to command lines. -**Open OnDemand** (OOD) +#### Open OnDemand (OOD) Open OnDemand is a Web-based interface to the system. It provides a graphical file-management interface and access to several popular applications running on the compute nodes. A simple terminal that opens on a loginnode is also provided. -See the introduction in our basic [tutorial](/notes/rivanna-intro/connecting_to_rivanna/connecting_ood). +See the introduction in our basic [tutorial](/notes/hpc-intro/connecting_to_the_system/connecting_ood/ "The Intro to High Performance Computing tutorial's Open OnDemand page"). -**FastX** +#### FastX -FastX is a Web-based graphical interface to a loginnode. It is also covered in the [introduction](/notes/rivanna-intro/connecting_to_rivanna/connecting_fastx). +FastX is a Web-based graphical interface to a loginnode. It is also covered in the [introduction](/notes/hpc-intro/connecting_to_the_system/connecting_fastx/ "The Intro to High Performance Computing tutorial's FastX page"). -**MobaXterm** (Windows) +#### MobaXterm (Windows) -MobaXterm combines an ssh client, a _sftp_ client for file transfers, and an X11 server into a single bundle. More details are available at our [Website](https://www.rc.virginia.edu/userinfo/rivanna/logintools/mobaxterm/) or in the [introduction](/notes/rivanna-intro/files/file_moba). +MobaXterm combines an ssh client, a _sftp_ client for file transfers, and an X11 server into a single bundle. More details are available at our [website](https://www.rc.virginia.edu/userinfo/rivanna/logintools/mobaxterm/ "The Research Computing website's MobaXterm page") or in the [introduction](/notes/hpc-intro/files/file_moba/ "The Intro to High Performance Computing tutorial's MobaXterm page"). ## Running Shell Commands diff --git a/content/notes/hpc-from-terminal/section2.md b/content/notes/hpc-from-terminal/section2.md index 451c4620..c3e69662 100644 --- a/content/notes/hpc-from-terminal/section2.md +++ b/content/notes/hpc-from-terminal/section2.md @@ -37,9 +37,9 @@ The quotes indicate that a space is part of the file name. While most modern Un In most operating systems, all files and directories are located with a **path**. The “path” is the "full name" of every file & directory. -In a Unix-based operating system, the files are organized into a _tree_ structure (the method to store and organize the files is called **filesystem**, e.g. ext3,ext4, NTFS, etc). The tree is "upside down" because the **root directory** is at the top, and directories branch off from there. The root directory is indicated with a forward slash `/`. +In a Unix-based operating system, the files are organized into a _tree_ structure (the method to store and organize the files is called **filesystem**, e.g. ext3, ext4, NTFS, etc). The tree is "upside down" because the **root directory** is at the top, and directories branch off from there. The root directory is indicated with a forward slash `/`. -{{< diagram >}} +{{< diagram alt="A tree diagram illustrating a Unix-like file system hierarchy beginning at the root directory (/). The major branches shown include etc, usr, and home. The home directory contains user directories named after computing IDs. The diagram further illustrates nesting, such as system commands ls, pwd, and cd located within the /usr/bin path." >}} graph TD C["/"] --> etc["etc"] C["/"] --> opt["opt"] @@ -66,7 +66,7 @@ graph TD bin--> cd["cd"] {{< /diagram >}} -The **home** directory is the usual name on Linux and similar Unix-based operating systems for the folder that holds user directories and files. On macOS it is called User. On both, the _separator_ between branches of the tree is the forward slash. +The **home** directory is the usual name on Linux and similar Unix-based operating systems for the folder that holds user directories and files. On macOS it is called Users. On both, the _separator_ between branches of the tree is the forward slash. {{< hl >}} /home/mst3k/myfile diff --git a/content/notes/hpc-from-terminal/section3.md b/content/notes/hpc-from-terminal/section3.md index 40d19b48..7afba97d 100644 --- a/content/notes/hpc-from-terminal/section3.md +++ b/content/notes/hpc-from-terminal/section3.md @@ -65,7 +65,7 @@ The hyphen as Type indicates an ordinary file. ## Changing Permissions -The owner of a file or directory may change the permissions with the `chmod` command. Two formats are supported: a three- or four-digit code (in octal, i.e. base 8) indicating permissions, or the add/remove symbolic format. The digit format is advanced so we will not discuss it; a reference is available [here](https://www.adminschoice.com/chmod-quick-referance-with-examples). The symbolic format is more intuitive and mnemonic. +The owner of a file or directory may change the permissions with the `chmod` command. Two formats are supported: a three- or four-digit code (in octal, i.e. base 8) indicating permissions, or the add/remove symbolic format. The digit format is advanced so we will not discuss it; a reference is available [here](https://www.adminschoice.com/chmod-quick-referance-with-examples "chmod Quick Reference with Examples"). The symbolic format is more intuitive and mnemonic. **Examples** @@ -93,7 +93,7 @@ To create files we use a _text editor_. Do not use a word processor such as Lib ### Graphical Options -Graphical editors must be used from within a graphical environment. On Linux the standard graphical windowing system is called **X11**. Newer Linux versions provide some form of "desktop" environment similar to Windows or macOS on top of X11. On our system we provide the [MATE](https://mate-desktop.org/) Desktop Environment. It can be accessed from [FastX](https://www.rc.virginia.edu/userinfo/rivanna/logintools/fastx/) on a loginnode. It can also be started on a compute node from the [Open OnDemand](https://www.rc.virginia.edu/userinfo/rivanna/ood/overview/) Desktop Interactive Application. +Graphical editors must be used from within a graphical environment. On Linux the standard graphical windowing system is called **X11**. Newer Linux versions provide some form of "desktop" environment similar to Windows or macOS on top of X11. On our system we provide the [MATE](https://mate-desktop.org/ "The official MATE website") Desktop Environment. It can be accessed from [FastX](https://www.rc.virginia.edu/userinfo/rivanna/logintools/fastx/ "The Research Computing website's FastX info page") on a loginnode. It can also be started on a compute node from the [Open OnDemand](https://www.rc.virginia.edu/userinfo/rivanna/ood/overview/ "The Research Computing website's Open OnDemand info page") Desktop Interactive Application. #### 1. gedit/pluma @@ -103,7 +103,7 @@ Gedit/pluma is very similar to Notepad on Windows. #### 2. VS Code -This is accessed by a [module](/notes/rivanna-command-line/modules). +This is accessed by a [module](https://www.rc.virginia.edu/userinfo/hpc/software/modules/ "The Research Computing website's Software Modules page"). ```bash $module load code-server ``` @@ -116,9 +116,9 @@ Regular Linux users are advised to learn at least one text-based editor, in case #### 1. vi (vim) -The oldest and most widely available text-based editor on Unix is _vi_ for "visual." Modern versions are nearly all based on [vim](https://vim.org) ("vi improved). On our system we generally _alias_ the `vi` command to `vim`. +The oldest and most widely available text-based editor on Unix is _vi_ for "visual." Modern versions are nearly all based on [vim](https://vim.org "The official Vim website") ("vi improved"). On our system we generally _alias_ the `vi` command to `vim`. -Vim/vi is used entirely through keyboard commands which must be memorized. The mouse is not utilized. Only a few commands are needed to be able to do basic editing and they are not difficult to learn. A beginner tutorial is [here](https://www.tutorialspoint.com/vim/index.htm). One stumbling block for new users is that vim has _command mode_ and _insert mode_ and it must be toggled between the two. +Vim/vi is used entirely through keyboard commands which must be memorized. The mouse is not utilized. Only a few commands are needed to be able to do basic editing and they are not difficult to learn. A beginner tutorial is [here](https://www.tutorialspoint.com/vim/index.htm "Vim tutorial"). One stumbling block for new users is that vim has _command mode_ and _insert mode_ and it must be toggled between the two. Basics: * To enter the insert mode press `i` @@ -131,7 +131,7 @@ MATE also provides a graphical interface called `gvim`. It can be accessed throu #### 2. nano -Nano is simple text editor that is fairly self-explanatory and simple to learn. It is always in insert mode. A tutorial similar to that for vim above is [here](https://www.tutorialspoint.com/how-to-use-nano-text-editor). +Nano is simple text editor that is fairly self-explanatory and simple to learn. It is always in insert mode. A tutorial similar to that for vim above is [here](https://www.tutorialspoint.com/how-to-use-nano-text-editor "How To Use Nano Text Editor"). Basics: * Immediately start typing @@ -140,7 +140,7 @@ Basics: #### 3. Emacs -The Emacs editor is another long-time editor on Unix. Similar to gvim, it combines a graphical interface, when available, with a keyboard-based command system. If the graphical interface is not available, such as from an Open OnDemand terminal, it will fall back to a text-only interface. Emacs is powerful and complex. The documentation is [here](https://www.gnu.org/software/emacs/tour/). +The Emacs editor is another long-time editor on Unix. Similar to gvim, it combines a graphical interface, when available, with a keyboard-based command system. If the graphical interface is not available, such as from an Open OnDemand terminal, it will fall back to a text-only interface. Emacs is powerful and complex. The documentation is [here](https://www.gnu.org/software/emacs/tour/ "Emacs guided tour"). ## Viewing Files @@ -159,9 +159,9 @@ $more ~/rivanna-cl/shakespeare/Lear.txt To page upward within the text, press `b` (back). -#### Searching. +#### Searching -You can search in the forward direction with `/`, where pattern is a combination of characters you wish to find. +You can search in the forward direction with `/`, where pattern is a combination of characters you wish to find. ```bash $more ~/rivanna-cl/shakespeare/Lear.text @@ -269,7 +269,7 @@ THE END ## Transferring Files Using the Command Line -Files can be transferred by [graphical clients](https://www.rc.virginia.edu/userinfo/rivanna/logintools/graphical-sftp) such as MobaXterm and Filezilla, or through [Globus](/tutorials/globus-data-transfer). If you are using a terminal from your local computer, you can also use some command-line tools. +Files can be transferred by [graphical clients](https://www.rc.virginia.edu/userinfo/rivanna/logintools/graphical-sftp "The Research Computing website's Graphical Transfer Tools page") such as MobaXterm and Filezilla, or through [Globus](/tutorials/globus-data-transfer "Globus tutorial"). If you are using a terminal from your local computer, you can also use some command-line tools. ### scp and sftp @@ -316,11 +316,11 @@ $rsync my_file mst3k@login.hpc.virginia.edu:/scratch/$USER ``` By default `rsync` does not transfer files that are older than the equivalent on the target. This can increase the transfer speed significantly. Rsync also resumes a transfer that was interrupted. Scp always starts again from the beginning. -Rsync is very powerful but has many options and can be confusing. For more details see our [documentation](https://www.rc.virginia.edu/userinfo/rivanna/logintools/cl-data-transfer). Several online resources with examples are also available, such as [this](https://www.digitalocean.com/community/tutorials/how-to-use-rsync-to-sync-local-and-remote-directories). +Rsync is very powerful but has many options and can be confusing. For more details see our [documentation](https://www.rc.virginia.edu/userinfo/rivanna/logintools/cl-data-transfer "The Research Computing website's Command Line Data Transfer page"). Several online resources with examples are also available, such as [this](https://www.digitalocean.com/community/tutorials/how-to-use-rsync-to-sync-local-and-remote-directories "How To Use Rsync to Sync Local and Remote Directories"). ### Setting up Passwordless ssh -If you will frequently use ssh, scp, sftp, or rsync to a remote system, it becomes inconvenient to repeatedly enter your password. Follow the instructions given [here](https://www.rc.virginia.edu/userinfo/howtos/general/sshkeys/) to generate a _key_ to log in without a password. +If you will frequently use ssh, scp, sftp, or rsync to a remote system, it becomes inconvenient to repeatedly enter your password. Follow the instructions given [here](https://www.rc.virginia.edu/userinfo/howtos/general/sshkeys/ "The Research Computing website's SSH Keys page") to generate a _key_ to log in without a password. ## Finding Information About a Command diff --git a/content/notes/hpc-from-terminal/section4.md b/content/notes/hpc-from-terminal/section4.md index 54947fd9..7b734955 100644 --- a/content/notes/hpc-from-terminal/section4.md +++ b/content/notes/hpc-from-terminal/section4.md @@ -141,7 +141,7 @@ $find . -name "people*" ``` The period `.` tells find to start at the current working directory. -Find has many options to locate files by name, type, date, and others. See [here](https://www.tecmint.com/35-practical-examples-of-linux-find-command/) for examples. +Find has many options to locate files by name, type, date, and others. See [here](https://www.tecmint.com/35-practical-examples-of-linux-find-command/ "35 Practical Examples of Linux Find Command") for examples. ## Running Executables @@ -218,7 +218,7 @@ The `pid` is the _process id_. You have accidentally started a production job on a loginnode node. What to do? -You can kill your foreground process with `Crtl c`. +You can kill your foreground process with `Ctrl c`. ```bash #oops, I was supposed to run this through Slurm $./myexe diff --git a/content/notes/hpc-from-terminal/section5.md b/content/notes/hpc-from-terminal/section5.md index 31749cb8..74668657 100644 --- a/content/notes/hpc-from-terminal/section5.md +++ b/content/notes/hpc-from-terminal/section5.md @@ -89,8 +89,8 @@ In an HPC environment, the tasks that users want to perform are generically call HPC jobs are run on _compute nodes_, not on the interactive loginnodes. -In the Introduction we discussed using the OOD [job composer](/notes/rivanna-intro/features_of_ood/features_jobs_tab) to submit and monitor jobs. When working at the command line, we must use more detailed features of Slurm. Please go through our [tutorial](/notes/slurm-from-cli) to learn how to write and submit Slurm scripts from the command line. +In the Introduction we discussed using the OOD [job composer](/notes/hpc-intro/features_of_ood/features_jobs_tab "The Intro to High-Performance Computing tutorial's Jobs on Open OnDemand page") to submit and monitor jobs. When working at the command line, we must use more detailed features of Slurm. Please go through our [tutorial](/notes/slurm-from-cli "Using Slurm from a Terminal tutorial") to learn how to write and submit Slurm scripts from the command line. ## Need Help? -Research Computing is ready to help you learn to use our systems efficiently. You can [submit a ticket](https://www.rc.virginia.edu/form/support-request/). For in-person help, please attend one of our weekly sessions of [office hours](https://www.rc.virginia.edu/support/#office-hours). +Research Computing is ready to help you learn to use our systems efficiently. You can [submit a ticket](https://www.rc.virginia.edu/form/support-request/ "The Research Computing website's Support Request page"). For in-person help, please attend one of our weekly sessions of [office hours](https://www.rc.virginia.edu/support/#office-hours "The Research Computing website's Support Options page"). diff --git a/content/notes/hpc-intro/connecting_to_the_system/connecting_fastx_desktop.md b/content/notes/hpc-intro/connecting_to_the_system/connecting_fastx_desktop.md index 79004a70..b460ef60 100644 --- a/content/notes/hpc-intro/connecting_to_the_system/connecting_fastx_desktop.md +++ b/content/notes/hpc-intro/connecting_to_the_system/connecting_fastx_desktop.md @@ -13,5 +13,5 @@ menu: A MATE desktop looks a little like an older Windows desktop. In the ribbon at the top are `Caja`, a file manager; a `Terminal` application, and the Firefox Web browser. -{{< figure src="/notes/hpc-intro/img/FastX_desktop.png" caption="The MATE Desktop" alt="FastX MATE desktop environment with a top panel containing icons for Caja file manager, Terminal, and Firefox web browser, and desktop icons for Computer, user's Home, and Trash.">}} +{{< figure src="/notes/hpc-intro/img/FastX_mate_desktop.png" caption="The MATE Desktop" alt="FastX MATE desktop environment with a top panel containing icons for Caja file manager, Terminal, and Firefox web browser, and desktop icons for Computer, user's Home, and Trash.">}} diff --git a/content/notes/hpc-intro/connecting_to_the_system/connecting_logging_on.md b/content/notes/hpc-intro/connecting_to_the_system/connecting_logging_on.md index 48882732..647a9a0f 100644 --- a/content/notes/hpc-intro/connecting_to_the_system/connecting_logging_on.md +++ b/content/notes/hpc-intro/connecting_to_the_system/connecting_logging_on.md @@ -10,7 +10,7 @@ menu: hpc-intro: name: Connecting and Logging On To HPC --- -{{< youtube-reduced-width id="BpaFQG4JOEU" maxwidth="600px" title="Connecting to HPC video" >}} +{{< youtube-reduced-width id="BpaFQG4JOEU" maxwidth="600px" title="Connecting to HPC video" transcriptid="connecting-transcript" >}} There are three ways to connect to the HPC System: * Open OnDemand, a graphical user interface through a web browser @@ -22,7 +22,7 @@ There are three ways to connect to the HPC System: -{{< spoiler text="Connecting to HPC Video Transcript" >}} +{{< spoiler text="Connecting to HPC Video Transcript" id="connecting-transcript" >}} **Narrator:** Hello and welcome back to the University of Virginia's high-performance computing tutorial series. In this module, we will cover three different ways to connect to the HPC system at UVA. The first method is Open OnDemand, which is a web application accessed through a web browser. From there, you can manipulate files, work with jobs, and use a host of different GUI applications. The second method is FastX, which is another web application that gives you direct access to a Linux desktop, where you can access your files, run GUI applications, and use a browser within the HPC system. Lastly, there is SSH, the Secure Shell Client, which gives you a command line-only view of the cluster. diff --git a/content/notes/hpc-intro/features_of_ood/features.md b/content/notes/hpc-intro/features_of_ood/features.md index b647afb4..dce134b4 100644 --- a/content/notes/hpc-intro/features_of_ood/features.md +++ b/content/notes/hpc-intro/features_of_ood/features.md @@ -12,7 +12,7 @@ menu: name: Features of Open OnDemand --- -{{< youtube-reduced-width id="MpzThi43iak" maxwidth="600px" title="Features of Open OnDemand video" >}} +{{< youtube-reduced-width id="MpzThi43iak" maxwidth="600px" title="Features of Open OnDemand video" transcriptid="features-transcript" >}} Open OnDemand has many features accessible directly from the menu bar. @@ -20,44 +20,82 @@ Open OnDemand has many features accessible directly from the menu bar. -{{< spoiler text="Features of Open OnDemand Video Transcript" >}} +{{< spoiler text="Features of Open OnDemand Video Transcript" id="features-transcript" >}} **Narrator:** Hello and welcome back to the University of Virginia's High Performance Computing Tutorial series. This module will be an overview of all the features available in Open OnDemand. + All of the different things you can do are in the top bar: Files, Jobs, Clusters, Interactive Apps, and Utilities, all the way on the right. In addition, we will cover some commands that can be run in the terminal to work with the HPC system. + The first section is the Files tab. This is an easy way to work with files on the cluster, which is covered in other content. + Next up is the Jobs dropdown. I'll start with the Job Composer. This is how users can create new batch jobs and submit them to the cluster's compute nodes. This video is not an overview of batch jobs, however; that is covered in other content. I will just demonstrate how to use the Job Composer to run a batch job. + You can select from a very simple default template or if you go to the Templates tab, you can see that there is a bunch of different templates that we have created. The demo_hello_world is a very simple template that you can start with. + To create the file, go back to the Jobs tab, click New Job, and select From Default Template. From here, all of the details of the job will be listed on the right. You can see information like the name of the job and where the script is located in the file system. The script name in this case is demo_hello_world.slurm. + If you scroll down, you can open the file itself with an editor using the Open Editor button. When you're using the Job Composer, you will need to change your allocation. You'll use whatever allocation you're a part of. In my case, that's hpc_training, but you should use the allocation your PI has given you. + From here, you can edit this file to include more code or references to your code. This example command will print out the string "Hello" and then my username, and then it'll output the host name, which is the actual name of the node. + After making edits to this file, click Save and then close the tab. Once you have a functioning job script and you're ready to submit it, scroll up and there will be a Submit button. Highlight your job, select Submit, and that will submit your job to Slurm, our resource manager. + It will be queued up, and as you can see, it's running now and it completed very quickly. If you want to view the output, you can scroll down to Folder Contents. There is an output file here, and you can open that up to see the print statement that you had put there. Close this tab to go back to the Open OnDemand homepage. + To view all the different jobs, whether yours or others on the cluster, use the Active Jobs option. At first, it will show you every single job that is either queued up, running, or recently completed on the cluster. That is a lot of information, so you can filter using your computing ID on the right with the Filter option, or there is a drop-down where you can switch from all jobs to just your jobs. + As you can see, I've got the job that I recently submitted. If you want more details about this job, you can click the drop-down on the left. From here, you can get a lot of information that was in the resource request for your job, such as the account you ran on, the partition you were submitting to, the state of it, as in whether or not it's completed, and how many nodes or CPUs you were requesting. + There is also information relevant to the job as it was running, such as the node list, as in what node the job ran on, the amount of time you actually used versus the time you requested, the start time and end time, and the location of where the job was run and where the output was sent to. + If you have a job that's queued up and still waiting, and you need to delete it from the queue, there is the Actions bar all the way on the right. From here, there will be a little trash icon that you can use to delete your job from the queue. + This is a low-level guide on how to use this feature. Other content is available to learn more about Slurm, our resource manager, and running jobs. + The Clusters dropdown here has two options, which are HPC Shell Access and System Status. HPC Shell Access opens a command line, and from here you can do command line work on the cluster, similar to using SSH, but entirely within the web browser. System Status will show current usage statistics of the cluster. + Next, there are the Interactive Apps. These are a list of the different GUI applications that you can use on the cluster. These are all run through our compute nodes, not just our login nodes. + For example, if you have Python code that you want to run interactively through the JupyterLab IDE as a Jupyter notebook, you can launch JupyterLab and run it from a compute node instead of just running it from a login node. There are also a bunch of other applications like Matlab and Code Server. + Additionally, there is a desktop app that you can use to get a FastX-like desktop view of the cluster, but on a compute node rather than a login node. To the right of interactive apps is an icon. This is where you can see all of your current ongoing interactive app sessions and perform actions on them. + Then there is the Utilities tab on the right. There are a couple of different utilities available for you to use. The first one is Disk Usage. It will output a bunch of information about your storage utilization. If you're a member of any Research Standard or Research Project storage shares, you can see all of that utilization as well. + Another option in the Utilities tab is Queue Status, which gives you a snapshot of the different queues at a given moment. For instance, I can see that the GPU queue is very busy with about 700 jobs pending right now, whereas standard isn't super busy with only 30 jobs pending and about 250 running, leaving a lot of free cores. + Another option in Utilities is Check Scratch for Purge. The scratch file system has a 90-day purge policy, meaning data is automatically deleted if you haven't used it in a while. This feature allows you to check your scratch files to see if anything is going to be deleted soon. + If I run this, I can see a couple of purge dates, as well as the number of files. I've got some files here that are going to be deleted soon. You can then save this list to your home folder to take action on it. You can save that list to your scratch folder to keep it in scratch or download those names locally. + It's important to note that these buttons only save a list of file names, not the files themselves. You need to view the list and take action on it. + The last utility is the Slurm Script Generator. This is something you can use to create new batch scripts that you can submit later. This page gives you a form that you can fill out on the left where you can give it a job name and your allocation. + You can select the partition, adjust the number of resources that you want, such as the number of cores and the time limit for your job, and you can request it to email you whenever your job begins, ends, or fails. You can do a couple of other things using the additional Slurm options checkbox, where you can write any other custom Slurm command. + Once you've adjusted all of these parameters, you can download the script, which will send it to your computer's local downloads folder. You can then upload it later, add the code you wish to run, and submit it. + Finally, here's a small list of HPC-specific commands that you can use from the command line to get more information about jobs, allocations, and so on. The first command is allocations. This will display information on the allocations you are a part of and how many service units you have. + Running this command, I can see that I'm a part of these allocations and the balance of SUs that I have. You can learn more about a specific allocation by using the allocations -a command. Running this will provide more details about when the allocation was renewed, how many SUs you have, the percentage used, whether or not it's active, and all the members of the allocation. + The next command is hdquota. This command provides the same output as the Disk Usage feature on Open OnDemand. It shows you how much of your storage you're using. You can see your home and scratch directories, how much you've used, what's available, and the percentage used. + If you have any Research Project or Research Standard storage, that's listed there as well. This gives you a total utilization overview. If you want more detailed information on what folders and files are taking up space, you may want to use the standard Linux du command to investigate. + However, the default output for this command is hard to decipher, so it's recommended to run something like du . -h --max-depth=1 The period represents the folder that you're currently in, so in this case my home folder. The -h option ensures that the sizes are displayed in a human readable format like kilobytes and gigabytes. The --max-depth=1 option limits the command to only run for the folders in the base of wherever the command is being run, and not the folders and files inside of that. + Those are the two main accounting commands. The rest of the commands we'll cover are for getting information on the cluster itself and the different partitions. The first such command is qlist. This will output the current usage of all the different partitions. + You can see the total jobs running, how many jobs are pending, total free cores, and the time limit for each of the partitions. You can also use qlist with the -p option to specify a particular partition. For example, If I specify the GPU partition, it will print out more detailed information about just the GPU partition. + You can see states on the left indicating how much of a given node is being used. Mix means it's not completely in use, allocated means it's totally used up, and draining means it's no longer accepting jobs. + Then there's the qlimits command. This will output information on the limitations for each of the partitions, including hardware limitations. For example, in the standard partition, you can see the maximum memory per node that's allowed. You can also see the maximum number of cores you're allowed to use at a time, the number of GPUs for the GPU partition, the maximum number of jobs you can submit, as well as the maximum memory per core, default memory per core, and maximum nodes per job. It provides a comprehensive overview of various limitations. + Finally, if you need help with UVA's HPC system, there are multiple ways to get assistance. You can visit our Zoom-based office hours sessions on Tuesdays from 3-5pm and Thursdays from 10am to noon. If you can't make it to these office hours or have a more specific request, you can submit a support ticket and we'll get back to you. + Links to both are on the RC Learning website. The main Research Computing website is also a valuable resource. We add a lot of documentation here and keep it updated. If you have a basic question or think it might be covered already, we have an FAQ section. We also have a list of how to's on various topics. If you can't find what you're looking for, we have a search feature where you can search our site for different information. + This concludes the features of Open OnDemand tutorial at the University of Virginia. Thank you. {{< /spoiler >}} \ No newline at end of file diff --git a/content/notes/hpc-intro/features_of_ood/features_files_tab.md b/content/notes/hpc-intro/features_of_ood/features_files_tab.md index 34c47399..e2014db4 100644 --- a/content/notes/hpc-intro/features_of_ood/features_files_tab.md +++ b/content/notes/hpc-intro/features_of_ood/features_files_tab.md @@ -16,4 +16,4 @@ The "Files" tab on the menu bar gives access to all files in home, scratch, stan {{< figure src="/notes/hpc-intro/img/OOD_files_tab.png" caption="OOD Files Menu" alt="The UVA OpenOnDemand menu bar with 'Home Directory' in the Files dropdown selected. This opens a webpage with a row of buttons for file actions, checkboxes for showing owner/mode and dotfiles, a filter box, and a list of directories and files." >}} -Here, you can upload and download small files to and from the cluster from your local computer. You can also create and delete new files and directories in addition to copying or renaming them. The Filter search bar searches for files or directories in the file system. A link to the file transfer application [Globus](https://learning.rc.virginia.edu/notes/hpc-intro/files/file_globus/) is also provided. +Here, you can upload and download small files to and from the cluster from your local computer. You can also create and delete new files and directories in addition to copying or renaming them. The Filter search bar searches for files or directories in the file system. A link to the [file transfer application Globus](https://learning.rc.virginia.edu/notes/hpc-intro/files/file_globus/) is also provided. diff --git a/content/notes/hpc-intro/features_of_ood/features_job_composer.md b/content/notes/hpc-intro/features_of_ood/features_job_composer.md index 78d3b564..0d6d0098 100644 --- a/content/notes/hpc-intro/features_of_ood/features_job_composer.md +++ b/content/notes/hpc-intro/features_of_ood/features_job_composer.md @@ -13,7 +13,7 @@ menu: The job composer tab allows you to create and submit a job to run on the cluster. -{{< figure src="/notes/hpc-intro/img/Features_job_composer.png" caption="OOD Job Composer" alt="UVA Open OnDemand Job Composer interface showing a 'New Job' dropdown with a 'From Default Template' option. A job table lists one entry: 'demo_hello_world' on the Rivanna cluster, not yet submitted. Submit, Stop, and Delete buttons, and a search bar appear above the table, with pagination controls at the bottom.">}} +{{< figure src="/notes/hpc-intro/img/Features_job_composer.png" caption="OOD Job Composer" alt="UVA Open OnDemand Job Composer interface showing a 'New Job' dropdown with a 'From Default Template' option. A job table lists one entry: 'demo_hello_world' on the Rivanna cluster, not yet submitted. Submit, Stop, and Delete buttons, and a search bar, appear above the table, with pagination controls at the bottom.">}} Selecting the default template will automatically create a submission script called ```demo_hello_world.slurm``` located in ```/home/computingID/Rivanna/data/sys/myjobs/projects/default/1``` on the file system: diff --git a/content/notes/hpc-intro/features_of_ood/features_useful_commands.md b/content/notes/hpc-intro/features_of_ood/features_useful_commands.md index bffe9a17..1a86fee7 100644 --- a/content/notes/hpc-intro/features_of_ood/features_useful_commands.md +++ b/content/notes/hpc-intro/features_of_ood/features_useful_commands.md @@ -15,7 +15,7 @@ Sometimes it's useful to check how many SUs are still available on your allocati {{< figure src="/notes/hpc-intro/img/features_allocations.png" caption="Allocations" alt="A table with accounts, balance, reserved and available SUs." >}} -running ```allocations -a ``` provides even more detail on when the allocation was last renewed and its members. +Running ```allocations -a ``` provides even more detail on when the allocation was last renewed and its members. diff --git a/content/notes/hpc-intro/files/file.md b/content/notes/hpc-intro/files/file.md index 561df2a1..ada45b4f 100644 --- a/content/notes/hpc-intro/files/file.md +++ b/content/notes/hpc-intro/files/file.md @@ -10,9 +10,9 @@ menu: hpc-intro: name: Working with Files --- -{{< youtube-reduced-width id="asN63Ujhzks" maxwidth="600px" title="Working with Files video" >}} +{{< youtube-reduced-width id="asN63Ujhzks" maxwidth="600px" title="Working with Files video" transcriptid="wwf-video-transcript">}} -Files are the foundation of working with an HPC cluster. We need to be able to +Files are the foundation of working with an HPC cluster. We need to be able to: * Transfer files to and from the cluster * Edit text files @@ -22,31 +22,56 @@ Each user has a `home` location and a `scratch` location. When you log in you w -{{< spoiler text="Working with Files Video Transcript" >}} +{{< spoiler text="Working with Files Video Transcript" id="wwf-video-transcript">}} **Narrator:** Hello and welcome back to the University of Virginia's High Performance Computing tutorial series. In this module, we will be covering the various ways of working with files on UVA's HPC system. + First, it's important to understand the file structure used by the HPC system. Since the system runs on Linux, we'll be using Linux naming conventions for files and folders. All file paths start from the root, which is denoted by a forward slash (/). All other files and folders within the cluster stem from this root, forming an upside-down tree structure. + The main folder at the top is the root folder, and there's nothing else above it. This is where everything is located. Within the root are folders such as home and scratch, which contain folders named after the computing IDs of active users on the cluster. Your computing ID within home leads to your home folder. + To navigate to your scratch folder from there, you follow a similar path but go backwards in the file tree: from your computing ID to home to root, and then over to scratch, and then your computing ID. Everything within there is your personal scratch folder. It's important to note that the home and scratch folders are connected only through the root. + All files have a full name called their path, which provides the operating system with the location of the file. This can be the exact location starting from the root or relative to a starting point, usually the folder you're currently in. This is different from other operating systems. For example, Windows users might be used to having a drive name at the beginning, like the C drive, and using backslashes (\) instead of forward slashes (/) to navigate through users and folders to a specific file. macOS uses a similar folder structure to Linux, starting from root, then Users, the user's name, Documents, and other folders leading to a file. + In Linux, specifically on our system, paths go from root, forward slash, to either home, scratch, project, or standard. Home and scratch have folders for each individual computing ID, while project and standard have storage share names. All paths traverse through folders, which Linux calls directories (these terms are synonymous) and end at a file. + To transfer data to and from the HPC system, there are many different options available. Here are some of the more popular options. MobaXterm is primarily an SSH client for Windows, but it also allows you to transfer files with a simple drag and drop interface. Another desktop app you can use is FileZilla, which is specifically for file transfer and works on Mac and Linux. For small files, you can use the upload and download buttons in the Open OnDemand file manager. + There are also command line transfer options. One option is scp, Secure Shell Copy, which you can use to transfer files through the terminal. Another popular option is rsync. Through the web browser on FastX or the Desktop interactive app, you can download data from the internet, including UVA Box or other cloud storage locations. Git is also available from the HPC terminal, allowing you to clone repositories directly onto the system. + The last option, which is the most involved, and the one we most recommend for large amounts of data, is Globus. This is a separate application you can use to transfer data between two different locations, like your laptop and the cluster. + Here are some examples of using those different graphical file transfer options. To connect with MobaXterm on a Windows machine, click Session in the top left, then the SFTP option at the top. Use one of the specific hosts like login1, login2, or login3.hpc.virginia.edu. Type in your computing ID into the username box and click OK. Click Accept on any server identity prompt that pops up. A separate prompt will appear asking for your password. Then you will have the option to save your password to the password manager. I'll click No for now. + A window will open where you can select a folder from your local machine in the top left pane, then drag and drop files between that folder in the bottom left pane and the cluster in the right pane. + To connect using FileZilla, click the Site Manager icon in the upper left. Select New Site and rename it. On the right side of the dialog box, select SFTP in the protocol dropdown. We recommend using a specific host name, which would be login1, login2, or login3.hpc.virginia.edu. If the port field is blank, type 22 into it. Then enter your username, which is your computing ID, and then your password. Click OK to save. You may be asked if you want FileZilla to remember passwords. If you select Do not save, then you will have to re-enter your password whenever you connect. I'll select Save passwords for now. + To initiate the connection, reopen the Site Manager, then click Connect. If you get an unknown host key warning, click OK. A double-paned window will open where you can transfer files by dragging and dropping between your local computer in the left-hand pane and the HPC system in the right-hand pane. + Open OnDemand has a file manager, which is an easy way to work with files on the cluster right through your browser. Clicking on the Files tab opens a dropdown with the different folders that you have access to. Every account has Home and Scratch, and then there's also Project and Standard Storage if you're part of a group that leases one of these two different storage options. Clicking on one of these folders opens the file manager. + Here, you can perform various operations such as creating a new file or directory. Let's create a simple text file named testfile. Scroll down to find your file, then click on it to open the file. At first, the file will be blank since you haven't added anything to it yet. To edit this text file, click the ellipsis on the right. This dropdown allows you to view, rename, download, or delete the file. To edit it, click the Edit button, which will open a new browser tab where you can add content to the file. You can add text or whatever you want. Whenever you're done editing, click the Save button at the top left. Make sure you save before exiting the browser, as exiting will close the file without saving. + Two other useful features are the Upload and Download buttons. Clicking Upload presents a drag and drop screen where you can drag files from your local file system and upload them to the cluster. Alternatively, you can click browse files to open your file manager and navigate using that. For downloading, select a file using the checkboxes on the left, then hit Download. This will download the file or folder to your computer's Downloads folder. Note that the Upload and Download buttons can only handle relatively smaller file sizes. Anything larger than 100 megabytes will fail, so you'll need to use another file transfer method. + You can also copy or move files. Select the file, then click Copy/Move, then navigate to the desired folder where you can then click the Copy or Move buttons on the left to finalize. To delete a file, use the ellipses, or select the file then hit Delete in the top right. Confirm the deletion and then the file will be permanently deleted. Finally, there's a Refresh button if needed, an Open in Terminal button to open the command line in another tab with the current folder set as the working directory, and a button that takes you to the Globus browser application. + Another option for working with files is using the Caja file manager in FastX. This is accessible either through the folder icon on the desktop or the little filing cabinet at the top. This will give you a GUI similar to the Windows File Explorer or macOS Finder app. To create new files, go to File → Create Document to create an empty file, then type in the file's name. You can also right-click and select Open With. There are a couple of different text editors you can use, such as Emacs, Gvim, LibreOffice Writer, and Pluma. We recommend Pluma for editing plain text. Clicking Pluma will open the file in a GUI text editor where you can add content and save it using the Save button in the top right. You can also open the Pluma editor by going to the Applications → Accessories menu. This will open a blank document where you can type text and then click Save to save it anywhere in the file system. + In FastX, you can also use graphical development interfaces such as VSCode, Spyder, or RStudio for editing programs or scripts. For running programs or scripts through environments such as these, use the Open OnDemand interactive apps. + To create a new folder in Caja, go to the File menu and click Create Folder. To rename, delete, cut, copy, or paste files or folders, right-click to access the appropriate option. Note that the Delete option performs a permanent deletion while there is a separate Move to Trash option. We recommend not using Move to Trash since the space in your home directory is limited. Caja also supports drag and drop, so you can move files either by cutting and pasting or by dragging them into a new location. + It's better to edit files directly on the system rather than on your local machine and then transferring them, to avoid any formatting issues that may arise from using a word processor on your local machine to edit plain text files. + To use Globus, you'll need a separate application to transfer files. You'll be using a browser app on the Globus page. With Globus, you can move and share your data between or within applications. Whether your files are on your local workstation, a lab workstation used by multiple users, our cluster, or another cluster at a different university, you can manage and transfer all of that data within the web app that Globus provides. + One big advantage of Globus is the ability to queue up a set of files or folders to be copied over. You'll select the transfer button to initiate the transfer, which is then performed on specific data transfer nodes or DTNs. These computers or servers will carry out the transfer, allowing you to go off and do other tasks without worrying about it. The transfers are high performance, thanks to the dedicated nodes, making this a reliable method for handling large amounts of data without the risk of data loss. If you have terabytes of data, this is the transfer method we recommend. + To get started with Globus, go to UVA Research Computing's Globus page, as it provides detailed instructions. Here you'll find information on getting started, setting up your own collection on your computer, transferring files, sharing folders with other users, and other advanced features. + Finally, if you need help with UVA's HPC system, there are multiple ways to get assistance. You can visit our Zoom-based office hour sessions on Tuesdays from 3 to 5 p.m. and Thursdays from 10 a.m. to noon. If you can't make it to these office hours or have a more specific request, you can submit a support ticket and we'll get back to you. Links to both are on the RC Learning website. The main Research Computing website is also a valuable resource. We add a lot of documentation here and keep it updated. If you have a basic question or think it might be covered already, we have an FAQ section. We also have a list of how-to's on various topics. If you can't find what you're looking for, we have a search feature where you can search our site for different information. + This concludes the Working with Files tutorial at the University of Virginia. Thank you. {{< /spoiler >}} \ No newline at end of file diff --git a/content/notes/hpc-intro/files/file_globus.md b/content/notes/hpc-intro/files/file_globus.md index bb696d99..3dd5c7dc 100644 --- a/content/notes/hpc-intro/files/file_globus.md +++ b/content/notes/hpc-intro/files/file_globus.md @@ -27,18 +27,18 @@ To transfer data to and from your computer, you will first need to install Globu | Platform | Installation instructions | | --- | --- | -| Mac | https://docs.globus.org/how-to/globus-connect-personal-mac | -| Linux | https://docs.globus.org/how-to/globus-connect-personal-linux | -| Windows | https://docs.globus.org/how-to/globus-connect-personal-windows | +| Mac | [Instructions for Mac](https://docs.globus.org/how-to/globus-connect-personal-mac "Globus Connect Personal installation instructions for Mac") | +| Linux | [Instructions for Linux](https://docs.globus.org/how-to/globus-connect-personal-linux "Globus Connect Personal installation instructions for Linux") | +| Windows | [Instructions for Windows](https://docs.globus.org/how-to/globus-connect-personal-windows "Globus Connect Personal installation instructions for Windows") | ## Transferring Files Files are transferred with the Globus File Manager Web App. There are three ways to get to the app: -1. Go straight to https://app.globus.org/file-manager -2. Go to https://www.globus.org/ > Log In (top right corner) -3. Click Globus icon in Toolbar > Web: Transfer Files +1. Go straight to [the Globus File Manager page](https://app.globus.org/file-manager "The Globus File Manager page") +2. Go to [Globus.org](https://www.globus.org/ "The Globus website") → Log In (top right corner) +3. Click Globus icon in Toolbar → Web: Transfer Files Once the app is open you can choose collections to transfer data between. @@ -48,4 +48,4 @@ Globus users are able to share data with anyone with a Globus account. All UVA H External collaborators don’t need to be affiliated with an institution using Globus in order to share data with them. Anyone can create a Globus account using @globusid.org -More information on using Globus can be found on [our learning website](https://learning.rc.virginia.edu/tutorials/globus-data-transfer/) and from [our documentation](https://www.rc.virginia.edu/userinfo/globus/). +More information on using Globus can be found on [our learning website](https://learning.rc.virginia.edu/tutorials/globus-data-transfer/ "Globus data transfer tutorial") and from [our documentation](https://www.rc.virginia.edu/userinfo/globus/ "Research Computing's Globus documentation"). diff --git a/content/notes/hpc-intro/files/file_paths_linux.md b/content/notes/hpc-intro/files/file_paths_linux.md index 2f39a5de..4e3dffc1 100644 --- a/content/notes/hpc-intro/files/file_paths_linux.md +++ b/content/notes/hpc-intro/files/file_paths_linux.md @@ -13,4 +13,7 @@ menu: UVA HPC runs the Linux operating system. File paths start from _root_, denoted with a forward slash (`/`). The layout of the folders/directories is like an upside-down tree. -{{< figure src="/notes/hpc-intro/img/unix_tree_white_background.png" caption="Schematic of folders on Rivanna. Only some files and folders shown." alt="Diagram of a file system starting at the root (forward slash), branching into 'home', 'bin', 'usr', and 'scratch'. 'Home' and 'scratch' contain user directories; 'home' contains files and a 'Desktop' directory. 'bin' lists commands like 'ls', 'pwd', and 'cd'. 'usr/bin' includes 'bash' and 'zip'." >}} +{{< figure src="/notes/hpc-intro/img/unix_tree_white_background.png" caption="Schematic of folders on the HPC system. Only some files and folders shown." alt="Diagram of a file system, represented as an upside-down tree structure. See the description below the 'File System Layout' heading." >}} + +## File System Layout +From the root, the file system branches into `home`, `bin`, `usr`, and `scratch`. `home` and `scratch` contain directories named after computing IDs. `bin` contains commands like `ls`, `pwd`, and `cd`. `usr/bin` includes `bash` and `zip`. diff --git a/content/notes/hpc-intro/img/FastX_mate_desktop.png b/content/notes/hpc-intro/img/FastX_mate_desktop.png new file mode 100644 index 00000000..f44d3113 Binary files /dev/null and b/content/notes/hpc-intro/img/FastX_mate_desktop.png differ diff --git a/content/notes/hpc-intro/interactive_apps/interactive.md b/content/notes/hpc-intro/interactive_apps/interactive.md index c7c286a9..d4248edc 100644 --- a/content/notes/hpc-intro/interactive_apps/interactive.md +++ b/content/notes/hpc-intro/interactive_apps/interactive.md @@ -10,7 +10,7 @@ menu: hpc-intro: name: Interactive Apps with Open OnDemand --- -{{< youtube-reduced-width id="FUZbumfxGyY" maxwidth="600px" title="Open OnDemand Interactive Apps video" >}} +{{< youtube-reduced-width id="FUZbumfxGyY" maxwidth="600px" title="Open OnDemand Interactive Apps video" transcriptid="interactive-apps-transcript">}} Open OnDemand's File Explorer, the FastX Web interface, and various command-line interfaces, can be used to prepare work for the cluster. This includes transferring and editing files, looking at output, and so forth. However, all production work must be run on the compute nodes, not on the frontends. @@ -21,32 +21,58 @@ Open OnDemand offers an easy way to run _interactive_ jobs. With an interactive -{{< spoiler text="Connecting to HPC Video Transcript" >}} +{{< spoiler text="Open OnDemand Interactive Apps Video Transcript" id="interactive-apps-transcript">}} Narrator: Hello and welcome back to the University of Virginia's High Performance Computing tutorial series. In this module, we will be covering the various interactive apps that you can access through Open OnDemand. + These are all GUI apps like JupyterLab and RStudio Server that you can run directly on a compute node rather than a login node, allowing you to do computational work interactively. The login nodes are more for setup or pre-production work, whereas the interactive use of the compute nodes is for compute jobs. That's where these interactive apps fit in. + First, it's important to point out how the resources on the cluster are managed. Getting access to the compute nodes is not as simple as just logging into a login node and starting to run work. You have to go through our resource manager, called Slurm. You can think of it as a queuing system. + When you submit a job, you'll specify the resources you need, such as the number of nodes, core count, memory, and time. All of that gets bundled into a request that is then sent to Slurm. A process within Slurm called the scheduler looks at all the resources you've requested and assigns your job some amount of priority. The priority determines where your job will sit within the queue. + If the resources you need are immediately available and there aren't many other jobs waiting, your job might submit immediately. However, if you're requesting a larger amount of resources or the queue is very busy at that time, your job might have to wait. Slurm will use the job's priority to place it in a queue, starting your job once it's next in line and the resources are ready. + When you submit a job, you're submitting it to one of Slurm's different partitions. Partitions are different chunks of compute nodes with various limitations, each meant for different kinds of jobs. For example, there is the standard partition where you're only allowed to run single node jobs, the parallel partition where you can request up to 64 nodes, the GPU partition for GPU jobs, and other dedicated partitions with specific purposes. A full list of all the different queues and resources is also available on our website. + To use the interactive apps, you'll use the Interactive Apps menu dropdown. This drop-down lists all the different apps we offer. The main ones this video will focus on are JupyterLab, RStudio Server, the desktop app, and Matlab. But all the other apps have similar setup processes. + I'll start by requesting a JupyterLab session. When I click on JupyterLab, it takes me to a different page with a form to fill out, where I can specify the resources I want to request for my interactive job. The first thing you'll be asked is which partition you want to run on. You can select between interactive, standard, GPU, or any other partitions you may have access to. + After that, you will specify the amount of time you want for your session. You can use the slider or input the number you need. Keep in mind that this time limit is a hard limit. For example, if you set the session for an hour, once the hour has passed, Slurm will cut any ongoing processes and you'll be disconnected from the session. You'll have to start a new one to continue working on a compute node. This time limit comes without any warnings, so make sure you're requesting enough time and maybe add an extra hour if you think you might need it. + Next, there's the number of cores, which is only relevant if you're running code that can take advantage of multiple cores. For example, if your code is multi-threaded, you'll want to request more cores. If you're unsure or if your code doesn't require multiple cores, stick with one core. + Then there's the memory request. This is where you'll request more RAM if your job needs it. It can be difficult to determine how much memory you need beforehand. A general rule of thumb is to request about two to three times the amount of RAM as the amount of data you're working with in gigabytes. For example, if you're working with a 10 gigabyte data file, you might want to request between 20 and 30 gigabytes of memory. This is just for loading the data. Processing the data might require more. It can be a bit of a guessing game. + Next is the working directory. For JupyterLab, this will be the folder from which you can open notebooks. I'll select home here. Then there's the dropdown for your allocation. It should be auto-filled with one already, but you can click on it and select between the different allocations you're a part of if you're a member of multiple. This allocation is where the service units you're using get billed to. + In the interactive partition, there are a couple of nodes that have GPUs in them. You can request these using the optional dropdown, and you can request up to two GPUs. When switching to the GPU partition, this option is replaced with GPU type. If you select the default option, it will give you whichever GPU is next available without any preference. If you click the dropdown, you can request a specific GPU like the A100, V100, A40, etc. You can request up to four GPUs using the number input. + Under Show Additional Options, if you select Yes, there is a field where you can add any other Slurm options. There are many different Slurm options you can use. I recommend looking at Slurm's documentation or the Slurm page on our website. For example, if you have a reservation for a class, you can use --reservation= followed by whatever your professor gives you. If you want to exclude certain nodes from your job search, you can use the exclude option and specify the nodes you don't want your job to run on. These are just a couple of examples. + If you're a member of over 16 groups, there are some permission issues that can pop up because the system only allows access to 16 groups. If you need access to a storage share or certain software, and you are in more than 16 groups, you might need to specify a group here. The last checkbox allows you to receive an email when your session starts. If you're waiting a long time and want to know when you can start working, this could be a good option to select. This form saves your preferences for future use so that you don't have to fill out everything on the form again in the future. + Once you're done filling out the form, click the Launch button to submit your job to Slurm. It will then take you to the My Interactive Sessions page. As you can see, my job is queued up. I have requested an hour and there are some session details here if I click on it. The resources I've requested, one hour on one core, is a very small request. Generally, you should expect a job like that to start almost immediately because there is usually one core available somewhere on the system, especially in the interactive or standard partition. + If, however, I'd requested a full node, like 40 to the 96 cores available on the node, for the maximum amount of time on that partition, that job will probably be queued for a longer period of time, because the resources might not be available. Additionally, a bigger job will have less priority than a smaller request like this one. Generally, smaller requests equal faster submission, while larger requests mean a longer wait time. + Once your job starts, you'll see the status change from Queued to Running. Once the resources are ready, the time requested switches to time remaining. To actually connect to the session, I'll click Connect to Jupyter, which will open another tab. As you can see, I've got JupyterLab open, where I can run notebooks and code on the compute nodes, rather than the login nodes. + There are a couple of different tiles here, like a base Python 3 tile for running Python 3.11 code. There are pre-built tiles for popular packages like PyTorch and TensorFlow, a Rapids tile, and an R tile. You also have the ability to create custom tiles. If you scroll further down, you can open a terminal using this button. This is useful if you need to pip install or conda install any packages. On the left is the file system, specifically my home directory. You can't navigate further back to open files from scratch or project directly, but the session does have access to the full file system. So my code can still read or modify data in my scratch folder. I just can't open a Jupyter notebook for my scratch folder. + The session is tied to my browser window. If I exit out of it, I can always reconnect by clicking Connect, which will reopen the session. However, JupyterLab is sensitive to the browser and the local internet connection. If I have code running and exit the browser, the code will stop. Similarly, if my Wi-Fi cuts out, the code will also stop. This limitation is specific to JupyterLab and doesn't affect other interactive apps. + Once I'm done with my session, I can close the browser and end my session by clicking the big red Delete button. It's best practice to end any sessions early when you're done, instead of letting them sit idle. We only charge SUs based on time used, not the time requested. So if I end the session early, I'll only be charged for time used, which can matter for your allocation. Additionally, if I don't delete my session, the resources will sit idle, which isn't ideal. We want unused resources to be available for others. To delete the session, I'll click Delete, confirm the action, and then my session will be successfully deleted. + Another app available on Open OnDemand is RStudio. Starting an RStudio session is similar to JupyterLab, but the form is slightly different. You'll be prompted to select an R version. In addition, there is no option for work directory, since you can navigate to the whole file system from RStudio. All other options in the form are the same. This is what RStudio itself looks like. You've got the console on the left and your file system on the right. RStudio can continue any active processes even if your connection drops or you close out of the browser. If you exit out and want to continue the session or check if the code is still running, you can always relaunch the session using the button that will pop up. + Starting up the other interactive apps is similar. So here's a quick overview of some of them and what they're useful for. One of the most useful apps is the Desktop interactive app. This will open a desktop that is identical to the FastX one, but instead of being on a login node it will run on a compute node. However, this means that the desktop app should not be used to submit other jobs. The desktop app can be useful for users who want to use GUI-based software. You can use the desktop app to run computationally intensive work on a compute node rather than using FastX on the login node. + Additionally, if you have a large amount of data to download from cloud services like Google Drive, UVA Box, or Microsoft OneDrive, you might find better performance on a compute node rather than a login node. You can start these downloads and then leave your computer for a bit. The downloads will continue even if you close the browser or turn off your computer. The desktop app has this functionality because it doesn't rely on your local internet connection or the browser being open. This is a great way to run something on the cluster in the background and come back to it later. + Another available app is Matlab. Similar to RStudio, you will request what version of Matlab you want to use when launching the session. Launching it will open the Matlab desktop app within a desktop environment, but closing the Matlab app will exit the session. If your files are not visible on the desktop, you can access them from the Places menu or the Caja app, which is the filing cabinet icon at the top of the screen. Both Matlab and the desktop app persist if your network is disconnected or if your browser closes. You can always relaunch those sessions to reconnect and your code will still be running. + Finally, if you need help with UVA's HPC system, there are multiple ways to get assistance. You can visit our Zoom-based office hours sessions on Tuesdays from 3-5pm and Thursdays from 10am to noon. If you can't make it to these office hours or have a more specific request, you can submit a support ticket and we'll get back to you. Links to both are on the RC Learning website. The main Research Computing website is also a valuable resource. We add a lot of documentation here and keep it updated. If you have a basic question or think it might be covered already, we have an FAQ section. We also have a list of how to's on various topics. If you can't find what you're looking for, we have a search feature where you can search our site for different information. + This concludes the Open OnDemand Interactive Apps tutorial at the University of Virginia. Thank you. {{< /spoiler >}} \ No newline at end of file diff --git a/content/notes/hpc-intro/overview_of_uva_hpc/overview_accounts.md b/content/notes/hpc-intro/overview_of_uva_hpc/overview_accounts.md index f41ddb82..e229301c 100644 --- a/content/notes/hpc-intro/overview_of_uva_hpc/overview_accounts.md +++ b/content/notes/hpc-intro/overview_of_uva_hpc/overview_accounts.md @@ -12,7 +12,7 @@ menu: --- ## Allocations and Groups -An allocation is associated with a _group_. Currently this is a [Grouper](https://groups.identity.virginia.edu/) group. +An allocation is associated with a _group_. Currently this is a [Grouper group](https://groups.identity.virginia.edu/). Members (but not administrators) of the allocation group automatically receive an account on the system. diff --git a/content/notes/hpc-intro/overview_of_uva_hpc/overview_getting_allocation.md b/content/notes/hpc-intro/overview_of_uva_hpc/overview_getting_allocation.md index 2cb6b25e..c87e1cb0 100644 --- a/content/notes/hpc-intro/overview_of_uva_hpc/overview_getting_allocation.md +++ b/content/notes/hpc-intro/overview_of_uva_hpc/overview_getting_allocation.md @@ -11,5 +11,6 @@ menu: parent: Overview of UVA HPC --- -{{< figure src="/notes/hpc-intro/img/allocation_schematic.png" caption="Requesting an Allocation" alt="Diagram showing the process of accessing Research Computing resources: A Principal Investigator (PI) requests an allocation from Research Computing, receives an allocation and account(s), and then allows access for researchers." >}} - +{{< figure src="/notes/hpc-intro/img/allocation_schematic.png" caption="Requesting an Allocation" alt="Diagram showing the process of accessing Research Computing resources; description of image is under the heading 'The Process'." >}} +## The Process +A Principal Investigator (PI) requests an allocation from Research Computing. RC then gives them an allocation and account(s). The PI can then allow researchers access to the allocation. diff --git a/content/notes/hpc-intro/pdf/notes.pdf b/content/notes/hpc-intro/pdf/notes.pdf deleted file mode 100644 index 193f74b7..00000000 Binary files a/content/notes/hpc-intro/pdf/notes.pdf and /dev/null differ diff --git a/content/notes/hpc-intro/wrapup.md b/content/notes/hpc-intro/wrapup.md index cde579ed..1f095827 100644 --- a/content/notes/hpc-intro/wrapup.md +++ b/content/notes/hpc-intro/wrapup.md @@ -17,6 +17,4 @@ Tuesdays: 3 pm – 5 pm Thursdays: 10 am – noon -For specific help you can [submit a ticket]( https://www.rc.virginia.edu/support/) (this may open Netbadge). - -![](imgs/rc_logo.png) +For specific help you can [submit a ticket]( https://www.rc.virginia.edu/support/) (this may open NetBadge). \ No newline at end of file diff --git a/content/notes/matlab-parallel-programming/_index.md b/content/notes/matlab-parallel-programming/_index.md index 02731cde..164eb22c 100644 --- a/content/notes/matlab-parallel-programming/_index.md +++ b/content/notes/matlab-parallel-programming/_index.md @@ -1,6 +1,6 @@ --- title: Matlab Parallel Programming -date: 2024-11-16-20:28:40Z +date: 2024-11-16T20:28:40Z authors: [teh] categories: [matlab, parallel computing] tags: [matlab, Parallel_Computing] diff --git a/content/notes/matlab-parallel-programming/matlab-parallel-programming_1.md b/content/notes/matlab-parallel-programming/matlab-parallel-programming_1.md index 016fd59e..cf780df5 100644 --- a/content/notes/matlab-parallel-programming/matlab-parallel-programming_1.md +++ b/content/notes/matlab-parallel-programming/matlab-parallel-programming_1.md @@ -1,6 +1,6 @@ --- title: Parallel Matlab on Rivanna -date: 2024-11-16-20:28:40Z +date: 2024-11-16T20:28:40Z type: docs weight: 100 menu: diff --git a/content/notes/matlab-parallel-programming/matlab-parallel-programming_2.md b/content/notes/matlab-parallel-programming/matlab-parallel-programming_2.md index e6200b88..b06e4623 100644 --- a/content/notes/matlab-parallel-programming/matlab-parallel-programming_2.md +++ b/content/notes/matlab-parallel-programming/matlab-parallel-programming_2.md @@ -1,6 +1,6 @@ --- title: Utilizing multiple cores on a desktop computer -date: 2024-11-16-20:28:40Z +date: 2024-11-16T20:28:40Z type: docs weight: 150 menu: diff --git a/content/notes/matlab-parallel-programming/matlab-parallel-programming_3.md b/content/notes/matlab-parallel-programming/matlab-parallel-programming_3.md index f3c73156..0e7fb44b 100644 --- a/content/notes/matlab-parallel-programming/matlab-parallel-programming_3.md +++ b/content/notes/matlab-parallel-programming/matlab-parallel-programming_3.md @@ -1,6 +1,6 @@ --- title: Accelerating and Parallelizing MATLAB Code -date: 2024-11-16-20:28:40Z +date: 2024-11-16T20:28:40Z type: docs weight: 150 menu: diff --git a/content/notes/matlab-parallel-programming/matlab-parallel-programming_4.md b/content/notes/matlab-parallel-programming/matlab-parallel-programming_4.md index 27cde166..cb5ecefd 100644 --- a/content/notes/matlab-parallel-programming/matlab-parallel-programming_4.md +++ b/content/notes/matlab-parallel-programming/matlab-parallel-programming_4.md @@ -1,6 +1,6 @@ --- title: Scaling up to cluster and cloud resources -date: 2024-11-16-20:28:40Z +date: 2024-11-16T20:28:40Z type: docs weight: 200 menu: diff --git a/content/notes/matlab-parallel-programming/matlab-parallel-programming_5.md b/content/notes/matlab-parallel-programming/matlab-parallel-programming_5.md index a39b9109..4fbb22b3 100644 --- a/content/notes/matlab-parallel-programming/matlab-parallel-programming_5.md +++ b/content/notes/matlab-parallel-programming/matlab-parallel-programming_5.md @@ -1,6 +1,6 @@ --- title: Tackling data-intensive problems on desktops and clusters -date: 2024-11-16-20:28:40Z +date: 2024-11-16T20:28:40Z type: docs weight: 250 menu: diff --git a/content/notes/matlab-parallel-programming/matlab-parallel-programming_6.md b/content/notes/matlab-parallel-programming/matlab-parallel-programming_6.md index c146d197..1cabc8f5 100644 --- a/content/notes/matlab-parallel-programming/matlab-parallel-programming_6.md +++ b/content/notes/matlab-parallel-programming/matlab-parallel-programming_6.md @@ -1,6 +1,6 @@ --- title: Accelerating applications with NVIDIA GPUs -date: 2024-11-16-20:28:40Z +date: 2024-11-16T20:28:40Z type: docs weight: 300 menu: diff --git a/content/notes/matlab-parallel-programming/matlab-parallel-programming_7.md b/content/notes/matlab-parallel-programming/matlab-parallel-programming_7.md index 5925e42e..58fa514d 100644 --- a/content/notes/matlab-parallel-programming/matlab-parallel-programming_7.md +++ b/content/notes/matlab-parallel-programming/matlab-parallel-programming_7.md @@ -1,6 +1,6 @@ --- title: Summary and resources -date: 2024-11-16-20:28:40Z +date: 2024-11-16T20:28:40Z type: docs weight: 350 menu: diff --git a/content/notes/multigpu-inference/_index.md b/content/notes/multigpu-inference/_index.md index 6cfdd438..c7d48fde 100644 --- a/content/notes/multigpu-inference/_index.md +++ b/content/notes/multigpu-inference/_index.md @@ -1,12 +1,11 @@ --- title: Multi-GPU LLM Inference -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z authors: [uvarc] categories: ["HPC"] tags: ["HPC"] type: docs weight: 1 -date: 2025-07-08-20:40:54Z menu: multigpu-inference: diff --git a/content/notes/multigpu-inference/accelerate.md b/content/notes/multigpu-inference/accelerate.md index b11f3a5b..5d4fad91 100644 --- a/content/notes/multigpu-inference/accelerate.md +++ b/content/notes/multigpu-inference/accelerate.md @@ -1,6 +1,6 @@ --- title: Accelerate -date: "2025-07-08T20:40:54" +date: "2025-07-08T20:40:54Z" type: docs weight: 1400 menu: diff --git a/content/notes/multigpu-inference/access-gpu.md b/content/notes/multigpu-inference/access-gpu.md index 62130610..ebad1708 100644 --- a/content/notes/multigpu-inference/access-gpu.md +++ b/content/notes/multigpu-inference/access-gpu.md @@ -1,6 +1,6 @@ --- title: GPU access on UVA HPC -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 450 menu: diff --git a/content/notes/multigpu-inference/advantages-acceleratae.md b/content/notes/multigpu-inference/advantages-acceleratae.md index 2bd982e4..eca486c7 100644 --- a/content/notes/multigpu-inference/advantages-acceleratae.md +++ b/content/notes/multigpu-inference/advantages-acceleratae.md @@ -1,6 +1,6 @@ --- title: Advantages of Accelerate -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 1500 menu: diff --git a/content/notes/multigpu-inference/advantages-vllm.md b/content/notes/multigpu-inference/advantages-vllm.md index f3ffe9f0..2d79493d 100644 --- a/content/notes/multigpu-inference/advantages-vllm.md +++ b/content/notes/multigpu-inference/advantages-vllm.md @@ -1,6 +1,6 @@ --- title: Advantages of vLLM -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 1900 menu: diff --git a/content/notes/multigpu-inference/advantagse-deepspeed.md b/content/notes/multigpu-inference/advantagse-deepspeed.md index e932186b..5aa476b3 100644 --- a/content/notes/multigpu-inference/advantagse-deepspeed.md +++ b/content/notes/multigpu-inference/advantagse-deepspeed.md @@ -1,6 +1,6 @@ --- title: Advantages of DeepSpeed -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 1750 menu: diff --git a/content/notes/multigpu-inference/basepod-uva.md b/content/notes/multigpu-inference/basepod-uva.md index 7e027fbc..a0c5a67a 100644 --- a/content/notes/multigpu-inference/basepod-uva.md +++ b/content/notes/multigpu-inference/basepod-uva.md @@ -1,6 +1,6 @@ --- title: UVA BasePOD -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 500 menu: diff --git a/content/notes/multigpu-inference/best-practices.md b/content/notes/multigpu-inference/best-practices.md index d39ddc77..4eeb4e98 100644 --- a/content/notes/multigpu-inference/best-practices.md +++ b/content/notes/multigpu-inference/best-practices.md @@ -1,6 +1,6 @@ --- title: Best Practices -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 1950 menu: diff --git a/content/notes/multigpu-inference/calculating-gpu.md b/content/notes/multigpu-inference/calculating-gpu.md index b806204e..1a73ef90 100644 --- a/content/notes/multigpu-inference/calculating-gpu.md +++ b/content/notes/multigpu-inference/calculating-gpu.md @@ -1,6 +1,6 @@ --- title: Calculating GPU Memory Requirements -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 900 menu: diff --git a/content/notes/multigpu-inference/code-accelerate.md b/content/notes/multigpu-inference/code-accelerate.md index dbb119f2..e69b0f70 100644 --- a/content/notes/multigpu-inference/code-accelerate.md +++ b/content/notes/multigpu-inference/code-accelerate.md @@ -1,6 +1,6 @@ --- title: Accelerate Code Demo -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 1550 menu: diff --git a/content/notes/multigpu-inference/cpu-inference.md b/content/notes/multigpu-inference/cpu-inference.md index 80e39bb1..3f2b2bc3 100644 --- a/content/notes/multigpu-inference/cpu-inference.md +++ b/content/notes/multigpu-inference/cpu-inference.md @@ -1,6 +1,6 @@ --- title: CPU Resource Allocation -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 1000 menu: diff --git a/content/notes/multigpu-inference/dashboard-gpu.md b/content/notes/multigpu-inference/dashboard-gpu.md index 25ba649f..baaa6d1e 100644 --- a/content/notes/multigpu-inference/dashboard-gpu.md +++ b/content/notes/multigpu-inference/dashboard-gpu.md @@ -1,6 +1,6 @@ --- title: GPU Dashboard -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 800 menu: diff --git a/content/notes/multigpu-inference/data-parallelism.md b/content/notes/multigpu-inference/data-parallelism.md index 16e2f294..223f65c6 100644 --- a/content/notes/multigpu-inference/data-parallelism.md +++ b/content/notes/multigpu-inference/data-parallelism.md @@ -1,6 +1,6 @@ --- title: Data Parallelism -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 1150 menu: diff --git a/content/notes/multigpu-inference/deepspeed.md b/content/notes/multigpu-inference/deepspeed.md index ed14cb64..58c321b4 100644 --- a/content/notes/multigpu-inference/deepspeed.md +++ b/content/notes/multigpu-inference/deepspeed.md @@ -1,6 +1,6 @@ --- title: DeepSpeed -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 1600 menu: diff --git a/content/notes/multigpu-inference/gemma-memory.md b/content/notes/multigpu-inference/gemma-memory.md index 1eef3c63..623d5d27 100644 --- a/content/notes/multigpu-inference/gemma-memory.md +++ b/content/notes/multigpu-inference/gemma-memory.md @@ -1,6 +1,6 @@ --- title: Gemma 3 Memory Requirements -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 950 menu: diff --git a/content/notes/multigpu-inference/identifying-bottlenecks.md b/content/notes/multigpu-inference/identifying-bottlenecks.md index a04c388c..ca5b3ed1 100644 --- a/content/notes/multigpu-inference/identifying-bottlenecks.md +++ b/content/notes/multigpu-inference/identifying-bottlenecks.md @@ -1,6 +1,6 @@ --- title: Identifying Bottlenecks -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 2000 menu: diff --git a/content/notes/multigpu-inference/introduction.md b/content/notes/multigpu-inference/introduction.md index f46a3ead..297e8430 100644 --- a/content/notes/multigpu-inference/introduction.md +++ b/content/notes/multigpu-inference/introduction.md @@ -1,6 +1,6 @@ --- title: Introduction -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 100 menu: diff --git a/content/notes/multigpu-inference/latency-adv.md b/content/notes/multigpu-inference/latency-adv.md index a3fbc412..b27982dd 100644 --- a/content/notes/multigpu-inference/latency-adv.md +++ b/content/notes/multigpu-inference/latency-adv.md @@ -1,6 +1,6 @@ --- title: Transformer-specific Latency Advantages -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 1700 menu: diff --git a/content/notes/multigpu-inference/memory-reqs.md b/content/notes/multigpu-inference/memory-reqs.md index 97331cc8..a0f8e067 100644 --- a/content/notes/multigpu-inference/memory-reqs.md +++ b/content/notes/multigpu-inference/memory-reqs.md @@ -1,6 +1,6 @@ --- title: GPU Memory Requirements -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 250 menu: diff --git a/content/notes/multigpu-inference/multigpu-inference_42.md b/content/notes/multigpu-inference/multigpu-inference_42.md index d1f9a5b6..a2f2e312 100644 --- a/content/notes/multigpu-inference/multigpu-inference_42.md +++ b/content/notes/multigpu-inference/multigpu-inference_42.md @@ -1,6 +1,6 @@ --- title: References -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 2150 menu: diff --git a/content/notes/multigpu-inference/pipeline-parallelism-interlayer.md b/content/notes/multigpu-inference/pipeline-parallelism-interlayer.md index f6c3df68..cc7864f2 100644 --- a/content/notes/multigpu-inference/pipeline-parallelism-interlayer.md +++ b/content/notes/multigpu-inference/pipeline-parallelism-interlayer.md @@ -1,6 +1,6 @@ --- title: Pipeline Parallelism (Inter-Layer) -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 1200 menu: diff --git a/content/notes/multigpu-inference/pod-access.md b/content/notes/multigpu-inference/pod-access.md index 6b9419fd..a330d3a2 100644 --- a/content/notes/multigpu-inference/pod-access.md +++ b/content/notes/multigpu-inference/pod-access.md @@ -1,6 +1,6 @@ --- title: POD Access -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 550 menu: diff --git a/content/notes/multigpu-inference/strategies-overview.md b/content/notes/multigpu-inference/strategies-overview.md index 3e7196a5..3d010016 100644 --- a/content/notes/multigpu-inference/strategies-overview.md +++ b/content/notes/multigpu-inference/strategies-overview.md @@ -1,6 +1,6 @@ --- title: Multi-GPU Strategies -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 1050 menu: diff --git a/content/notes/multigpu-inference/tensor-parallelism.md b/content/notes/multigpu-inference/tensor-parallelism.md index 2b15cf7f..bbc14e43 100644 --- a/content/notes/multigpu-inference/tensor-parallelism.md +++ b/content/notes/multigpu-inference/tensor-parallelism.md @@ -1,6 +1,6 @@ --- title: Tensor Parallelism (Intra-Layer) -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 1250 menu: diff --git a/content/notes/multigpu-inference/tools-frameworks.md b/content/notes/multigpu-inference/tools-frameworks.md index d1aa8adf..67aa8cee 100644 --- a/content/notes/multigpu-inference/tools-frameworks.md +++ b/content/notes/multigpu-inference/tools-frameworks.md @@ -1,6 +1,6 @@ --- title: Key Tools and Frameworks -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 1300 menu: diff --git a/content/notes/multigpu-inference/uva-gpus.md b/content/notes/multigpu-inference/uva-gpus.md index de51f599..82ceda5a 100644 --- a/content/notes/multigpu-inference/uva-gpus.md +++ b/content/notes/multigpu-inference/uva-gpus.md @@ -1,6 +1,6 @@ --- title: GPUs on UVA HPC -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 400 menu: diff --git a/content/notes/multigpu-inference/uva-hpc.md b/content/notes/multigpu-inference/uva-hpc.md index 4e495093..2652f83b 100644 --- a/content/notes/multigpu-inference/uva-hpc.md +++ b/content/notes/multigpu-inference/uva-hpc.md @@ -1,6 +1,6 @@ --- title: UVA HPC -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 300 menu: diff --git a/content/notes/multigpu-inference/viewing-gpus.md b/content/notes/multigpu-inference/viewing-gpus.md index 76b9eb39..f288ca37 100644 --- a/content/notes/multigpu-inference/viewing-gpus.md +++ b/content/notes/multigpu-inference/viewing-gpus.md @@ -1,6 +1,6 @@ --- title: Viewing Available GPUs -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 750 menu: diff --git a/content/notes/multigpu-inference/vllm.md b/content/notes/multigpu-inference/vllm.md index fef7cf15..0a8cc8bd 100644 --- a/content/notes/multigpu-inference/vllm.md +++ b/content/notes/multigpu-inference/vllm.md @@ -1,6 +1,6 @@ --- title: vLLM -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 1800 menu: diff --git a/content/notes/multigpu-inference/waittime-queue.md b/content/notes/multigpu-inference/waittime-queue.md index 3c3d3a34..4e84190c 100644 --- a/content/notes/multigpu-inference/waittime-queue.md +++ b/content/notes/multigpu-inference/waittime-queue.md @@ -1,6 +1,6 @@ --- title: Wait Time in the Queue -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 700 menu: diff --git a/content/notes/multigpu-inference/wrapup.md b/content/notes/multigpu-inference/wrapup.md index 274992f0..c8d36631 100644 --- a/content/notes/multigpu-inference/wrapup.md +++ b/content/notes/multigpu-inference/wrapup.md @@ -1,6 +1,6 @@ --- title: Wrap Up -date: 2025-07-08-20:40:54Z +date: 2025-07-08T20:40:54Z type: docs weight: 2050 menu: diff --git a/content/notes/qiime2/1_intro.md b/content/notes/qiime2/1_intro.md index 105a6271..089d5857 100644 --- a/content/notes/qiime2/1_intro.md +++ b/content/notes/qiime2/1_intro.md @@ -1,6 +1,6 @@ --- title: What is QIIME 2? -date: 2025-06-13-14:45:04Z +date: 2025-06-13T14:45:04Z type: docs weight: 50 menu: diff --git a/content/notes/qiime2/2_qiime_core.md b/content/notes/qiime2/2_qiime_core.md index 8e6d07ec..c5686a90 100644 --- a/content/notes/qiime2/2_qiime_core.md +++ b/content/notes/qiime2/2_qiime_core.md @@ -1,6 +1,6 @@ --- title: QIIME 2 Core 2022.8 Distribution -date: 2025-06-13-14:45:04Z +date: 2025-06-13T14:45:04Z type: docs weight: 100 menu: diff --git a/content/notes/qiime2/3_importing_data.md b/content/notes/qiime2/3_importing_data.md index fc3fde6d..23b3f16e 100644 --- a/content/notes/qiime2/3_importing_data.md +++ b/content/notes/qiime2/3_importing_data.md @@ -1,6 +1,6 @@ --- title: Importing Data -date: 2025-06-13-14:45:04Z +date: 2025-06-13T14:45:04Z type: docs weight: 150 menu: diff --git a/content/notes/qiime2/4_view_results.md b/content/notes/qiime2/4_view_results.md index ec570bd4..be2a1057 100644 --- a/content/notes/qiime2/4_view_results.md +++ b/content/notes/qiime2/4_view_results.md @@ -1,6 +1,6 @@ --- title: View QIIME 2 Results -date: 2025-06-13-14:45:04Z +date: 2025-06-13T14:45:04Z type: docs weight: 250 menu: diff --git a/content/notes/qiime2/5_practice.md b/content/notes/qiime2/5_practice.md index 4f1b4e99..ad1aa667 100644 --- a/content/notes/qiime2/5_practice.md +++ b/content/notes/qiime2/5_practice.md @@ -1,6 +1,6 @@ --- title: Hands-On Practice -date: 2025-06-13-14:45:04Z +date: 2025-06-13T14:45:04Z type: docs weight: 300 menu: diff --git a/content/notes/qiime2/_index.md b/content/notes/qiime2/_index.md index e78756bc..cedaab3c 100644 --- a/content/notes/qiime2/_index.md +++ b/content/notes/qiime2/_index.md @@ -1,10 +1,9 @@ --- title: Introduction to QIIME 2 -date: 2025-6-10T00:00:00-05:00 +date: 2025-06-13T00:00:00-05:00 authors: [] type: docs weight: 1 -date: 2025-6-10T00:00:00-05:00 menu: qiime2: diff --git a/content/notes/rapids/index.md b/content/notes/rapids/index.md index da0c8fb3..11aab6d4 100644 --- a/content/notes/rapids/index.md +++ b/content/notes/rapids/index.md @@ -109,4 +109,4 @@ Submit the job via `sbatch job.slurm`. # References and further reading - [Official documentation](https://docs.rapids.ai/) -- [Workshop: High Performance Programming in Python](/workshops/python_high_perf/) +- [Workshop: High Performance Programming in Python](/courses/python-high-performance/) diff --git a/content/notes/rio-intro/01-hpcuva.md b/content/notes/rio-intro/01-hpcuva.md index bdba33bc..1122a2c9 100644 --- a/content/notes/rio-intro/01-hpcuva.md +++ b/content/notes/rio-intro/01-hpcuva.md @@ -1,6 +1,6 @@ --- title: HPC at UVA -date: 2025-11-12-03:53:56Z +date: 2025-11-12T03:53:56Z type: docs weight: 150 menu: @@ -9,17 +9,17 @@ menu: High Performance Computing (HPC) systems are tailored to data sensitivity. -**Rivanna/Afton (Standard Security)** +## Rivanna/Afton (Standard Security) These systems are used to process and store public data, internal use data, or sensitive data. Highly Sensitive Data (HSD) is not permissible. -> More information on the SSZ HPC can be found in our [Intro to HPC slides](https://learning.rc.virginia.edu/notes/hpc-intro/). +> More information on the SSZ HPC can be found in our [Intro to HPC slides](https://learning.rc.virginia.edu/notes/hpc-intro/). -**Rio (High Security)** +## Rio (High Security) Rio is designed for processing and storing HSD such as HIPAA, FERPA, Controlled Access Data (CAD), etc. Rio is not CUI certified yet; use the Ivy VM instead. -> For more information, please see [RC Systems Data Sensitivity](https://www.rc.virginia.edu/userinfo/storage/data-sensitivity/). +> For more information, please see [RC Systems Data Sensitivity](https://www.rc.virginia.edu/userinfo/storage/data-sensitivity/). diff --git a/content/notes/rio-intro/02-hsd.md b/content/notes/rio-intro/02-hsd.md index e93b0469..8fd0aaef 100644 --- a/content/notes/rio-intro/02-hsd.md +++ b/content/notes/rio-intro/02-hsd.md @@ -1,6 +1,6 @@ --- title: Highly Sensitive Data -date: 2025-11-12-03:53:56Z +date: 2025-11-12T03:53:56Z type: docs weight: 200 menu: diff --git a/content/notes/rio-intro/03-ivy-rio.md b/content/notes/rio-intro/03-ivy-rio.md index 48848fbf..bbae0b27 100644 --- a/content/notes/rio-intro/03-ivy-rio.md +++ b/content/notes/rio-intro/03-ivy-rio.md @@ -1,6 +1,6 @@ --- title: Ivy and Rio (Overview) -date: 2025-11-12-03:53:56Z +date: 2025-11-12T03:53:56Z type: docs weight: 250 menu: diff --git a/content/notes/rio-intro/04-terminology.md b/content/notes/rio-intro/04-terminology.md index aabdfb08..36aceb25 100644 --- a/content/notes/rio-intro/04-terminology.md +++ b/content/notes/rio-intro/04-terminology.md @@ -1,6 +1,6 @@ --- title: Terminology -date: 2025-11-12-03:53:56Z +date: 2025-11-12T03:53:56Z type: docs weight: 300 menu: diff --git a/content/notes/rio-intro/05-access.md b/content/notes/rio-intro/05-access.md index 8d26ee91..3a29e3f3 100644 --- a/content/notes/rio-intro/05-access.md +++ b/content/notes/rio-intro/05-access.md @@ -1,6 +1,6 @@ --- title: Requesting Access to Rio -date: 2025-11-12-03:53:56Z +date: 2025-11-12T03:53:56Z type: docs weight: 350 menu: @@ -19,6 +19,6 @@ VMs comes in different sizes. Request a VM sized appropriately for your workflow VMs exist in a private, secure network and cannot reach outside resources on the Internet. Most inbound and outbound data transfer is managed through the Data Transfer Node (DTN). -More information on requesting a VM can be found [here on the RC website](https://www.rc.virginia.edu/userinfo/ivy/). +More information on requesting a VM can be found [here on the RC website](https://www.rc.virginia.edu/userinfo/ivy/ "The Research Computing website's Ivy page"). diff --git a/content/notes/rio-intro/06-provisioning.md b/content/notes/rio-intro/06-provisioning.md index 18f3f0cf..4f53ed74 100644 --- a/content/notes/rio-intro/06-provisioning.md +++ b/content/notes/rio-intro/06-provisioning.md @@ -1,6 +1,6 @@ --- title: VM Provisioning -date: 2025-11-12-03:53:56Z +date: 2025-11-12T03:53:56Z type: docs weight: 400 menu: diff --git a/content/notes/rio-intro/07-userprovisioning.md b/content/notes/rio-intro/07-userprovisioning.md index 0fe9ffcd..3092eb79 100644 --- a/content/notes/rio-intro/07-userprovisioning.md +++ b/content/notes/rio-intro/07-userprovisioning.md @@ -1,6 +1,6 @@ --- title: User Provisioning -date: 2025-11-12-03:53:56Z +date: 2025-11-12T03:53:56Z type: docs weight: 450 menu: diff --git a/content/notes/rio-intro/08-connecting.md b/content/notes/rio-intro/08-connecting.md index c25c23f5..aefa4c89 100644 --- a/content/notes/rio-intro/08-connecting.md +++ b/content/notes/rio-intro/08-connecting.md @@ -1,6 +1,6 @@ --- title: Connecting to the System -date: 2025-11-12-03:53:56Z +date: 2025-11-12T03:53:56Z type: docs weight: 500 menu: @@ -11,14 +11,14 @@ Before connecting to your VM, you must install the following on your workstation * Cisco AnyConnect Secure Mobility Client. * Opswat. * Duo MFA on personal smartphone. - * See [here on the RC website](https://www.rc.virginia.edu/userinfo/ivy/) for details. + * See [here on the RC website](https://www.rc.virginia.edu/userinfo/ivy/ "The Research Computing website's Ivy page") for details. There are two ways to connect to your Linux VM: 1. Accessing the VM from a browser window 2. Using SSH (Secure Shell) * Use a terminal window with Mac/Linux - * Windows users will need to install an SSH client application. We recommend [MobaXTerm](https://www.rc.virginia.edu/userinfo/hpc/logintools/mobaxterm/). + * Windows users will need to install an SSH client application. We recommend [MobaXTerm](https://www.rc.virginia.edu/userinfo/hpc/logintools/mobaxterm/ "The Research Computing website's MobaXterm guide"). In either case, you need the IP address of your VM along with your Netbadge credentials to connect to the VM. diff --git a/content/notes/rio-intro/09-access-ssh.md b/content/notes/rio-intro/09-access-ssh.md index 3d686281..066f4204 100644 --- a/content/notes/rio-intro/09-access-ssh.md +++ b/content/notes/rio-intro/09-access-ssh.md @@ -1,6 +1,6 @@ --- title: Accessing from SSH -date: 2025-11-12-03:53:56Z +date: 2025-11-12T03:53:56Z type: docs weight: 550 menu: @@ -14,11 +14,11 @@ Steps: 2. Open your SSH client and type: ```bash -ssh [mst3k@10.xxx.xxx.xxx](mailto:mst3k@10.xxx.xxx.xxx) +ssh mst3k@10.xxx.xxx.xxx ``` `mst3k` is replaced with your user ID and the `x`'s are replaced with your VM's IP address (given in the Services app). -{{< figure src=/notes/rio-intro/img/rio-intro_5.png alt="Screenshot showing a terminal window in MobaXterm with the command ssh mst3k@10.xxx.xxx.xxx entered, demonstrating how a user connects to their Rio VM over SSH using their user ID and VM IP address. The command line interface displays a green and yellow bar with the date, time, and file path /home/mobaxterm." width=90% height=90% >}} +{{< figure src=/notes/rio-intro/img/rio-intro_5.png alt="Screenshot showing a terminal window in MobaXterm with the command `ssh mst3k@10.xxx.xxx.xxx` entered. The command line interface displays a green and yellow bar with the date, time, and file path /home/mobaxterm." width=90% height=90% >}} When prompted for a password, use your EServices password. diff --git a/content/notes/rio-intro/10-ssh-clients.md b/content/notes/rio-intro/10-ssh-clients.md index a2e8ab3e..ff3db786 100644 --- a/content/notes/rio-intro/10-ssh-clients.md +++ b/content/notes/rio-intro/10-ssh-clients.md @@ -1,6 +1,6 @@ --- title: SSH Clients -date: 2025-11-12-03:53:56Z +date: 2025-11-12T03:53:56Z type: docs weight: 600 menu: @@ -33,4 +33,4 @@ $ rm file_1 $ cd .. ``` -See [learning.rc.virginia.edu/tutorials/unix-tutorial/](http://learning.rc.virginia.edu/tutorials/unix-tutorial/) to learn more. \ No newline at end of file +See [RC Learning's Unix Tutorial](/tutorials/unix-tutorial/) to learn more. \ No newline at end of file diff --git a/content/notes/rio-intro/11-access-browser.md b/content/notes/rio-intro/11-access-browser.md index 2034b4b4..96edbe87 100644 --- a/content/notes/rio-intro/11-access-browser.md +++ b/content/notes/rio-intro/11-access-browser.md @@ -1,6 +1,6 @@ --- title: Accessing from a Browser -date: 2025-11-12-03:53:56Z +date: 2025-11-12T03:53:56Z type: docs weight: 650 menu: diff --git a/content/notes/rio-intro/12-VM-storage.md b/content/notes/rio-intro/12-VM-storage.md index da59765e..3515c06e 100644 --- a/content/notes/rio-intro/12-VM-storage.md +++ b/content/notes/rio-intro/12-VM-storage.md @@ -1,6 +1,6 @@ --- title: VM Storage -date: 2025-11-12-03:53:56Z +date: 2025-11-12T03:53:56Z type: docs weight: 653 menu: @@ -17,7 +17,7 @@ The personal directory for individual data storage is mounted under `/home/$USER Shared storage space is mounted under `/standard/ivy-hip-name` where `ivy-hip-name` is replaced by the name of your Ivy project's Grouper group name. -The default of Research Standard Storage is 1TB. PIs can get more when first requesting the Ivy project. Storage can be resized using our [Storage Request Form](https://www.rc.virginia.edu/form/storage/). +The default of Research Standard Storage is 1TB. PIs can get more when first requesting the Ivy project. Storage can be resized using our [Storage Request Form](https://www.rc.virginia.edu/form/storage/ "The RC website's Storage Request form"). ### Rio Caveat diff --git a/content/notes/rio-intro/13-transferring-data.md b/content/notes/rio-intro/13-transferring-data.md index a349d2a8..400a6d38 100644 --- a/content/notes/rio-intro/13-transferring-data.md +++ b/content/notes/rio-intro/13-transferring-data.md @@ -1,6 +1,6 @@ --- title: Transferring Data -date: 2025-11-12-03:53:56Z +date: 2025-11-12T03:53:56Z type: docs weight: 850 menu: @@ -11,9 +11,11 @@ menu: **UVA IVY-DTN** is the the official collection for moving files into High-Security Research Standard Storage. -To transfer data to High-Security Research Standard Storage, please see the special Globus instructions [here on the RC website](https://www.rc.virginia.edu/userinfo/ivy/). +To transfer data to High-Security Research Standard Storage, please see the special Globus instructions [here on the RC website](https://www.rc.virginia.edu/userinfo/ivy/ "The RC website's Ivy page"). -> Ensure that you are __NOT__ connected to the HSVPN. Data transfer will not work if you are connected to the HSVPN. +{{< warning >}} +Ensure that you are __NOT__ connected to the HSVPN. Data transfer will not work if you are connected to the HSVPN. +{{< /warning >}} -Additional instructions and information on using Globus can be found [here on the RC learning site](https://learning.rc.virginia.edu/tutorials/globus-data-transfer/). +Additional instructions and information on using Globus can be found [here on the RC learning site](https://learning.rc.virginia.edu/tutorials/globus-data-transfer/ "RC Learning's Globus tutorial"). diff --git a/content/notes/rio-intro/14-OOD.md b/content/notes/rio-intro/14-OOD.md index 589c08f6..031c117f 100644 --- a/content/notes/rio-intro/14-OOD.md +++ b/content/notes/rio-intro/14-OOD.md @@ -1,6 +1,6 @@ --- title: Open OnDemand -date: 2025-11-12-03:53:56Z +date: 2025-11-12T03:53:56Z type: docs weight: 855 menu: @@ -10,4 +10,4 @@ menu: Open OnDemand is a web application that allows for HPC access through a graphical browser window. -{{< figure src=/notes/rio-intro/img/OOD.png alt="Screenshot of the Open OnDemand web interface. The top navigation bar shows menu options: 'Jobs,' 'Clusters,' 'Interactive Apps,' and 'My Interactive Sessions.' The center of the page displays the Open OnDemand logo with the text: 'OnDemand provides an integrated, single access point for all of your HPC resources.'" caption="Features of the application are accessible using the top gray bar: Jobs, Clusters, and Interactive Apps." width=90% height=90% >}} \ No newline at end of file +{{< figure src=/notes/rio-intro/img/OOD.png alt="Screenshot of the Open OnDemand web interface. The top navigation bar shows menu options: 'Jobs,' 'Clusters,' 'Interactive Apps,' and 'My Interactive Sessions.'" caption="Features of the application are accessible using the top gray bar: Jobs, Clusters, and Interactive Apps." width=90% height=90% >}} \ No newline at end of file diff --git a/content/notes/rio-intro/15-active-jobs.md b/content/notes/rio-intro/15-active-jobs.md index d02a247b..fd17454b 100644 --- a/content/notes/rio-intro/15-active-jobs.md +++ b/content/notes/rio-intro/15-active-jobs.md @@ -1,8 +1,8 @@ --- title: Active Jobs -date: 2025-11-12-03:53:56Z +date: 2025-11-12T03:53:56Z type: docs -weight: 855 +weight: 857 menu: rio-intro: parent: Open OnDemand diff --git a/content/notes/rio-intro/16-clusters.md b/content/notes/rio-intro/16-clusters.md index ba76ba37..1cf2839d 100644 --- a/content/notes/rio-intro/16-clusters.md +++ b/content/notes/rio-intro/16-clusters.md @@ -1,6 +1,6 @@ --- title: Clusters -date: 2025-11-12-03:53:56Z +date: 2025-11-12T03:53:56Z type: docs weight: 860 menu: diff --git a/content/notes/rio-intro/17-interactive-apps.md b/content/notes/rio-intro/17-interactive-apps.md index 13557a80..fa8fb283 100644 --- a/content/notes/rio-intro/17-interactive-apps.md +++ b/content/notes/rio-intro/17-interactive-apps.md @@ -1,6 +1,6 @@ --- title: Interactive Apps -date: 2025-11-12-03:53:56Z +date: 2025-11-12T03:53:56Z type: docs weight: 865 menu: diff --git a/content/notes/rio-intro/18-requesting-session.md b/content/notes/rio-intro/18-requesting-session.md index c084749f..c9823863 100644 --- a/content/notes/rio-intro/18-requesting-session.md +++ b/content/notes/rio-intro/18-requesting-session.md @@ -1,6 +1,6 @@ --- title: Requesting a Session -date: 2025-11-12-03:53:56Z +date: 2025-11-12T03:53:56Z type: docs weight: 900 menu: @@ -10,7 +10,7 @@ menu: To request an interactive session, select one of the applications from the dropdown. This will prompt you to fill in the desired resources for your interactive job. -{{< figure src=/notes/rio-intro/img/jupyterlab.png alt="Open OnDemand JupyterLab launch form showing fields: Partition set to Standard, 1 hour, 1 core, 6 GB memory, allocation hpc_build, and a Launch button." width=45% height=45% >}} +{{< figure src=/notes/rio-intro/img/jupyterlab.png alt="Open OnDemand JupyterLab launch form showing 6 fields: Partition set to Standard, 1 hour, 1 core, 6 GB memory, allocation hpc_build, Show Additional Options set to No, and a Launch button." width=45% height=45% >}} The above example is for starting a JupyterLab session. diff --git a/content/notes/rio-intro/19-interactive-desktop.md b/content/notes/rio-intro/19-interactive-desktop.md index 7a2ea06e..eda35c9f 100644 --- a/content/notes/rio-intro/19-interactive-desktop.md +++ b/content/notes/rio-intro/19-interactive-desktop.md @@ -1,6 +1,6 @@ --- title: Interactive Desktop -date: 2025-11-12-03:53:56Z +date: 2025-11-12T03:53:56Z type: docs weight: 950 menu: @@ -12,8 +12,7 @@ The Interactive Desktop application launches a virtual desktop session. The Desktop app is a great tool for managing files and launching applications with a graphical user interface. -A Firefox browser is available and can be used to browse the web. The browser must be launched from a terminal with the -network proxy set. Use the following commands in a terminal: +A Firefox browser is available and can be used to browse the web. The browser must be launched from a terminal with the network proxy set. Use the following commands in a terminal: ```bash export HTTPS_PROXY=http://figgis-s.hpc.virginia.edu:8080 diff --git a/content/notes/rio-intro/20-officehours.md b/content/notes/rio-intro/20-officehours.md index ade0181c..209ffdb6 100644 --- a/content/notes/rio-intro/20-officehours.md +++ b/content/notes/rio-intro/20-officehours.md @@ -1,6 +1,6 @@ --- title: Support -date: 2025-11-12-03:53:56Z +date: 2025-11-12T03:53:56Z type: docs weight: 1500 menu: @@ -15,9 +15,9 @@ __Research Computing Zoom Office Hours__ * Thursdays: 10am – noon -> To connect to the Zoom sessions, go to [https://www.rc.virginia.edu/support/#office-hours](https://www.rc.virginia.edu/support/#office-hours) and click the "Join us via Zoom" button. +> To connect to the Zoom sessions, go to [the Support Options page](https://www.rc.virginia.edu/support/#office-hours "The RC website's Office Hours section") and click the "Join us via Zoom" button. -Alternatively, contact us through the forms at: [https://www.rc.virginia.edu/support/](https://www.rc.virginia.edu/support/) +Alternatively, contact us through the forms on [the Support Options Page](https://www.rc.virginia.edu/support/ "The RC website's Support Options page"). diff --git a/content/notes/rio-intro/_index.md b/content/notes/rio-intro/_index.md index 5dbfa80b..ad3d2b06 100644 --- a/content/notes/rio-intro/_index.md +++ b/content/notes/rio-intro/_index.md @@ -1,12 +1,11 @@ --- title: Intro to High Security HPC (Rio) -date: 2025-11-12-03:53:56Z +date: 2025-11-12T03:53:56Z authors: [as, pbo, Camden Duy] categories: [HPC] tags: [HPC] type: docs weight: 1 -date: 2025-11-12-03:53:56Z menu: rio-intro: diff --git a/content/notes/rivanna-alphafold/23-alphafold-db.md b/content/notes/rivanna-alphafold/23-alphafold-db.md index c64d5447..e05f36d5 100644 --- a/content/notes/rivanna-alphafold/23-alphafold-db.md +++ b/content/notes/rivanna-alphafold/23-alphafold-db.md @@ -1,6 +1,6 @@ --- title: Protein Structure Database -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 2300 menu: diff --git a/content/notes/rivanna-alphafold/24-limitations-alphafold-db.md b/content/notes/rivanna-alphafold/24-limitations-alphafold-db.md index 33f6e03d..98d3b8aa 100644 --- a/content/notes/rivanna-alphafold/24-limitations-alphafold-db.md +++ b/content/notes/rivanna-alphafold/24-limitations-alphafold-db.md @@ -1,6 +1,6 @@ --- title: Limitations -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 2350 menu: diff --git a/content/notes/rivanna-alphafold/25-alphafold-alternatives.md b/content/notes/rivanna-alphafold/25-alphafold-alternatives.md index 3ddaa5fe..a7231d96 100644 --- a/content/notes/rivanna-alphafold/25-alphafold-alternatives.md +++ b/content/notes/rivanna-alphafold/25-alphafold-alternatives.md @@ -1,6 +1,6 @@ --- title: Alternative Frameworks -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 2400 menu: diff --git a/content/notes/rivanna-alphafold/_index.md b/content/notes/rivanna-alphafold/_index.md index 37bf8fd5..f1bbafd7 100644 --- a/content/notes/rivanna-alphafold/_index.md +++ b/content/notes/rivanna-alphafold/_index.md @@ -1,10 +1,9 @@ --- title: AlphaFold on Rivanna -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z authors: [mab] type: docs weight: 1 -date: 2025-05-20-00:23:54Z menu: rivanna-alphafold: diff --git a/content/notes/rivanna-alphafold/alphafold/4-alphafold-intro.md b/content/notes/rivanna-alphafold/alphafold/4-alphafold-intro.md index f5dc2722..44e45027 100644 --- a/content/notes/rivanna-alphafold/alphafold/4-alphafold-intro.md +++ b/content/notes/rivanna-alphafold/alphafold/4-alphafold-intro.md @@ -1,6 +1,6 @@ --- title: AlphaFold -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 400 menu: diff --git a/content/notes/rivanna-alphafold/alphafold/5-prediction-pipeline.md b/content/notes/rivanna-alphafold/alphafold/5-prediction-pipeline.md index e7bb465f..e7835787 100644 --- a/content/notes/rivanna-alphafold/alphafold/5-prediction-pipeline.md +++ b/content/notes/rivanna-alphafold/alphafold/5-prediction-pipeline.md @@ -1,6 +1,6 @@ --- title: Pipeline and Architecture -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 450 menu: diff --git a/content/notes/rivanna-alphafold/alphafold/6-outputs-alphafold.md b/content/notes/rivanna-alphafold/alphafold/6-outputs-alphafold.md index febc4e59..f5fdf4ca 100644 --- a/content/notes/rivanna-alphafold/alphafold/6-outputs-alphafold.md +++ b/content/notes/rivanna-alphafold/alphafold/6-outputs-alphafold.md @@ -1,6 +1,6 @@ --- title: Outputs Overview -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 550 menu: diff --git a/content/notes/rivanna-alphafold/alphafold/7-confidence-metrics.md b/content/notes/rivanna-alphafold/alphafold/7-confidence-metrics.md index 923e46df..db397d8e 100644 --- a/content/notes/rivanna-alphafold/alphafold/7-confidence-metrics.md +++ b/content/notes/rivanna-alphafold/alphafold/7-confidence-metrics.md @@ -1,6 +1,6 @@ --- title: Confidence Metrics -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 580 menu: diff --git a/content/notes/rivanna-alphafold/intro/0-intro.md b/content/notes/rivanna-alphafold/intro/0-intro.md index 8150c326..6fd6a513 100644 --- a/content/notes/rivanna-alphafold/intro/0-intro.md +++ b/content/notes/rivanna-alphafold/intro/0-intro.md @@ -1,6 +1,6 @@ --- title: Introduction -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 200 menu: diff --git a/content/notes/rivanna-alphafold/intro/1-gpu-vs-cpu.md b/content/notes/rivanna-alphafold/intro/1-gpu-vs-cpu.md index 1468057b..72c34c9d 100644 --- a/content/notes/rivanna-alphafold/intro/1-gpu-vs-cpu.md +++ b/content/notes/rivanna-alphafold/intro/1-gpu-vs-cpu.md @@ -1,6 +1,6 @@ --- title: CPU vs. GPU -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 210 menu: diff --git a/content/notes/rivanna-alphafold/intro/2-protein-folding-problem.md b/content/notes/rivanna-alphafold/intro/2-protein-folding-problem.md index 1fc5f23a..b8c0c013 100644 --- a/content/notes/rivanna-alphafold/intro/2-protein-folding-problem.md +++ b/content/notes/rivanna-alphafold/intro/2-protein-folding-problem.md @@ -1,6 +1,6 @@ --- title: The Protein Folding Problem -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 250 menu: diff --git a/content/notes/rivanna-alphafold/intro/3-casp-competitions.md b/content/notes/rivanna-alphafold/intro/3-casp-competitions.md index d5c173c7..fa7a6a08 100644 --- a/content/notes/rivanna-alphafold/intro/3-casp-competitions.md +++ b/content/notes/rivanna-alphafold/intro/3-casp-competitions.md @@ -1,6 +1,6 @@ --- title: CASP Competitions -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 300 menu: diff --git a/content/notes/rivanna-alphafold/out/14-outputs.md b/content/notes/rivanna-alphafold/out/14-outputs.md index 1b3af4a0..2718fde4 100644 --- a/content/notes/rivanna-alphafold/out/14-outputs.md +++ b/content/notes/rivanna-alphafold/out/14-outputs.md @@ -1,6 +1,6 @@ --- title: Outputs -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 1650 menu: diff --git a/content/notes/rivanna-alphafold/out/15-sequence-coverage-plot.md b/content/notes/rivanna-alphafold/out/15-sequence-coverage-plot.md index 6e1dad50..889d4477 100644 --- a/content/notes/rivanna-alphafold/out/15-sequence-coverage-plot.md +++ b/content/notes/rivanna-alphafold/out/15-sequence-coverage-plot.md @@ -1,6 +1,6 @@ --- title: Sequence Coverage Plot -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 1700 menu: diff --git a/content/notes/rivanna-alphafold/out/15a-postprocessing.md b/content/notes/rivanna-alphafold/out/15a-postprocessing.md index 2b65dc11..77a7cd13 100644 --- a/content/notes/rivanna-alphafold/out/15a-postprocessing.md +++ b/content/notes/rivanna-alphafold/out/15a-postprocessing.md @@ -1,6 +1,6 @@ --- title: Sequence Coverage Script -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 1740 menu: diff --git a/content/notes/rivanna-alphafold/out/16-plddt-plot.md b/content/notes/rivanna-alphafold/out/16-plddt-plot.md index 6155b36b..7caabbdb 100644 --- a/content/notes/rivanna-alphafold/out/16-plddt-plot.md +++ b/content/notes/rivanna-alphafold/out/16-plddt-plot.md @@ -1,6 +1,6 @@ --- title: pLDDT Plot -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 1750 menu: diff --git a/content/notes/rivanna-alphafold/out/17-pae-plot.md b/content/notes/rivanna-alphafold/out/17-pae-plot.md index ba390fcc..576ba088 100644 --- a/content/notes/rivanna-alphafold/out/17-pae-plot.md +++ b/content/notes/rivanna-alphafold/out/17-pae-plot.md @@ -1,6 +1,6 @@ --- title: PAE Plot -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 1800 menu: diff --git a/content/notes/rivanna-alphafold/out/18-csv-outputs.md b/content/notes/rivanna-alphafold/out/18-csv-outputs.md index 278543f1..7a2ef5c0 100644 --- a/content/notes/rivanna-alphafold/out/18-csv-outputs.md +++ b/content/notes/rivanna-alphafold/out/18-csv-outputs.md @@ -1,6 +1,6 @@ --- title: CSV Outputs - alphapickle -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 1850 menu: diff --git a/content/notes/rivanna-alphafold/out/19-pdb-structure.md b/content/notes/rivanna-alphafold/out/19-pdb-structure.md index a503bc91..2d153a2d 100644 --- a/content/notes/rivanna-alphafold/out/19-pdb-structure.md +++ b/content/notes/rivanna-alphafold/out/19-pdb-structure.md @@ -1,6 +1,6 @@ --- title: PDB Structure -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 1900 menu: diff --git a/content/notes/rivanna-alphafold/running/10-working-directory-alphafold.md b/content/notes/rivanna-alphafold/running/10-working-directory-alphafold.md index 1c171c31..dd5ac5f8 100644 --- a/content/notes/rivanna-alphafold/running/10-working-directory-alphafold.md +++ b/content/notes/rivanna-alphafold/running/10-working-directory-alphafold.md @@ -1,6 +1,6 @@ --- title: Alphafold Working Directory -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 800 menu: diff --git a/content/notes/rivanna-alphafold/running/11-input-fasta.md b/content/notes/rivanna-alphafold/running/11-input-fasta.md index a4fedeac..9d62731a 100644 --- a/content/notes/rivanna-alphafold/running/11-input-fasta.md +++ b/content/notes/rivanna-alphafold/running/11-input-fasta.md @@ -1,6 +1,6 @@ --- title: Input - FASTA File -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 1100 menu: diff --git a/content/notes/rivanna-alphafold/running/12-submit-slurm.md b/content/notes/rivanna-alphafold/running/12-submit-slurm.md index ee40c857..31b713f6 100644 --- a/content/notes/rivanna-alphafold/running/12-submit-slurm.md +++ b/content/notes/rivanna-alphafold/running/12-submit-slurm.md @@ -1,6 +1,6 @@ --- title: Submit a SLURM Job -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 1150 menu: diff --git a/content/notes/rivanna-alphafold/running/7-loggingon.md b/content/notes/rivanna-alphafold/running/7-loggingon.md index 3b414af2..ec864a60 100644 --- a/content/notes/rivanna-alphafold/running/7-loggingon.md +++ b/content/notes/rivanna-alphafold/running/7-loggingon.md @@ -1,6 +1,6 @@ --- title: Logging on to OOD Desktop -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 605 menu: diff --git a/content/notes/rivanna-alphafold/running/7a-prep-wd.md b/content/notes/rivanna-alphafold/running/7a-prep-wd.md index dda6f8da..16fc11ea 100644 --- a/content/notes/rivanna-alphafold/running/7a-prep-wd.md +++ b/content/notes/rivanna-alphafold/running/7a-prep-wd.md @@ -1,6 +1,6 @@ --- title: Building a Working Directory -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 610 menu: diff --git a/content/notes/rivanna-alphafold/running/7b-prep-conda-env.md b/content/notes/rivanna-alphafold/running/7b-prep-conda-env.md index 53a3e53a..96f3095e 100644 --- a/content/notes/rivanna-alphafold/running/7b-prep-conda-env.md +++ b/content/notes/rivanna-alphafold/running/7b-prep-conda-env.md @@ -1,6 +1,6 @@ --- title: Building a conda Environment -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 620 menu: diff --git a/content/notes/rivanna-alphafold/running/8-running-on-rivanna.md b/content/notes/rivanna-alphafold/running/8-running-on-rivanna.md index f4f92331..bd7a00e1 100644 --- a/content/notes/rivanna-alphafold/running/8-running-on-rivanna.md +++ b/content/notes/rivanna-alphafold/running/8-running-on-rivanna.md @@ -1,6 +1,6 @@ --- title: Running AlphaFold On Rivanna -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 600 menu: diff --git a/content/notes/rivanna-alphafold/vmd/20-visualizing-structures.md b/content/notes/rivanna-alphafold/vmd/20-visualizing-structures.md index add6cd98..d7f2e746 100644 --- a/content/notes/rivanna-alphafold/vmd/20-visualizing-structures.md +++ b/content/notes/rivanna-alphafold/vmd/20-visualizing-structures.md @@ -1,6 +1,6 @@ --- title: Visualizing 3D Structures -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 1950 menu: diff --git a/content/notes/rivanna-alphafold/vmd/21-modify-vmd.md b/content/notes/rivanna-alphafold/vmd/21-modify-vmd.md index 18856619..8b4c16fa 100644 --- a/content/notes/rivanna-alphafold/vmd/21-modify-vmd.md +++ b/content/notes/rivanna-alphafold/vmd/21-modify-vmd.md @@ -1,6 +1,6 @@ --- title: Modify Visualization in VMD -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 2150 menu: diff --git a/content/notes/rivanna-alphafold/vmd/22-background-color-vmd.md b/content/notes/rivanna-alphafold/vmd/22-background-color-vmd.md index 3f46b37f..c4e44791 100644 --- a/content/notes/rivanna-alphafold/vmd/22-background-color-vmd.md +++ b/content/notes/rivanna-alphafold/vmd/22-background-color-vmd.md @@ -1,6 +1,6 @@ --- title: Change Background Color -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 2200 menu: diff --git a/content/notes/rivanna-alphafold/vmd/22-exporting-vmd.md b/content/notes/rivanna-alphafold/vmd/22-exporting-vmd.md index 206eaf90..1b9a3105 100644 --- a/content/notes/rivanna-alphafold/vmd/22-exporting-vmd.md +++ b/content/notes/rivanna-alphafold/vmd/22-exporting-vmd.md @@ -1,6 +1,6 @@ --- title: Exporting in VMD -date: 2025-05-20-00:23:54Z +date: 2025-05-20T00:23:54Z type: docs weight: 2250 menu: diff --git a/content/notes/seurat-bioinformatics/01-scRNAseq.md b/content/notes/seurat-bioinformatics/01-scRNAseq.md index d0711559..cc3134ea 100644 --- a/content/notes/seurat-bioinformatics/01-scRNAseq.md +++ b/content/notes/seurat-bioinformatics/01-scRNAseq.md @@ -1,6 +1,6 @@ --- title: Single-Cell RNA Sequencing -date: 2025-07-16-17:52:00Z +date: 2025-07-16T17:52:00Z type: docs weight: 100 menu: diff --git a/content/notes/seurat-bioinformatics/02-pipeline-cell-ranger.md b/content/notes/seurat-bioinformatics/02-pipeline-cell-ranger.md index fc878fc9..f855e530 100644 --- a/content/notes/seurat-bioinformatics/02-pipeline-cell-ranger.md +++ b/content/notes/seurat-bioinformatics/02-pipeline-cell-ranger.md @@ -1,6 +1,6 @@ --- title: 10X Genomics Pipeline -date: 2025-07-16-17:52:00Z +date: 2025-07-16T17:52:00Z type: docs weight: 150 menu: diff --git a/content/notes/seurat-bioinformatics/03-seurat-intro.md b/content/notes/seurat-bioinformatics/03-seurat-intro.md index db73db48..4e937932 100644 --- a/content/notes/seurat-bioinformatics/03-seurat-intro.md +++ b/content/notes/seurat-bioinformatics/03-seurat-intro.md @@ -1,6 +1,6 @@ --- title: Intro to Seurat -date: 2025-07-16-17:52:00Z +date: 2025-07-16T17:52:00Z type: docs weight: 200 menu: diff --git a/content/notes/seurat-bioinformatics/04-rstudio-portal.md b/content/notes/seurat-bioinformatics/04-rstudio-portal.md index aea7861e..8a5862ad 100644 --- a/content/notes/seurat-bioinformatics/04-rstudio-portal.md +++ b/content/notes/seurat-bioinformatics/04-rstudio-portal.md @@ -1,6 +1,6 @@ --- title: OOD RStudio Server -date: 2025-07-16-17:52:00Z +date: 2025-07-16T17:52:00Z type: docs weight: 250 menu: diff --git a/content/notes/seurat-bioinformatics/05-setup.md b/content/notes/seurat-bioinformatics/05-setup.md index 6991fb41..cf3795c9 100644 --- a/content/notes/seurat-bioinformatics/05-setup.md +++ b/content/notes/seurat-bioinformatics/05-setup.md @@ -1,6 +1,6 @@ --- title: Loading Seurat -date: 2025-07-16-17:52:00Z +date: 2025-07-16T17:52:00Z type: docs weight: 400 menu: diff --git a/content/notes/seurat-bioinformatics/06-dataloading.md b/content/notes/seurat-bioinformatics/06-dataloading.md index 75dff6d1..28e41aba 100644 --- a/content/notes/seurat-bioinformatics/06-dataloading.md +++ b/content/notes/seurat-bioinformatics/06-dataloading.md @@ -1,6 +1,6 @@ --- title: Data Access & Loading -date: 2025-07-16-17:52:00Z +date: 2025-07-16T17:52:00Z type: docs weight: 450 menu: diff --git a/content/notes/seurat-bioinformatics/07-qc.md b/content/notes/seurat-bioinformatics/07-qc.md index 665d5da0..6fe6b81b 100644 --- a/content/notes/seurat-bioinformatics/07-qc.md +++ b/content/notes/seurat-bioinformatics/07-qc.md @@ -1,6 +1,6 @@ --- title: Preprocessing/QC -date: 2025-07-16-17:52:00Z +date: 2025-07-16T17:52:00Z type: docs weight: 500 menu: diff --git a/content/notes/seurat-bioinformatics/08-filter-normalize.md b/content/notes/seurat-bioinformatics/08-filter-normalize.md index 143db9f9..97ba7866 100644 --- a/content/notes/seurat-bioinformatics/08-filter-normalize.md +++ b/content/notes/seurat-bioinformatics/08-filter-normalize.md @@ -1,6 +1,6 @@ --- title: Filter & Normalize -date: 2025-07-16-17:52:00Z +date: 2025-07-16T17:52:00Z type: docs weight: 550 menu: diff --git a/content/notes/seurat-bioinformatics/09-variable-features.md b/content/notes/seurat-bioinformatics/09-variable-features.md index c6122d3d..76586e26 100644 --- a/content/notes/seurat-bioinformatics/09-variable-features.md +++ b/content/notes/seurat-bioinformatics/09-variable-features.md @@ -1,6 +1,6 @@ --- title: Identify Highly Variable Features -date: 2025-07-16-17:52:00Z +date: 2025-07-16T17:52:00Z type: docs weight: 600 menu: diff --git a/content/notes/seurat-bioinformatics/10-scale.md b/content/notes/seurat-bioinformatics/10-scale.md index 2dc40e2b..e28893aa 100644 --- a/content/notes/seurat-bioinformatics/10-scale.md +++ b/content/notes/seurat-bioinformatics/10-scale.md @@ -1,6 +1,6 @@ --- title: Scale the Data -date: 2025-07-16-17:52:00Z +date: 2025-07-16T17:52:00Z type: docs weight: 625 menu: diff --git a/content/notes/seurat-bioinformatics/11-pca.md b/content/notes/seurat-bioinformatics/11-pca.md index 07c01e7c..660157fa 100644 --- a/content/notes/seurat-bioinformatics/11-pca.md +++ b/content/notes/seurat-bioinformatics/11-pca.md @@ -1,6 +1,6 @@ --- title: Linear Dimension Reduction (PCA) -date: 2025-07-16-17:52:00Z +date: 2025-07-16T17:52:00Z type: docs weight: 650 menu: diff --git a/content/notes/seurat-bioinformatics/12-visualize-pca.md b/content/notes/seurat-bioinformatics/12-visualize-pca.md index a9d7b8d2..ac78b5d6 100644 --- a/content/notes/seurat-bioinformatics/12-visualize-pca.md +++ b/content/notes/seurat-bioinformatics/12-visualize-pca.md @@ -1,6 +1,6 @@ --- title: Visualize PCA Results -date: 2025-07-16-17:52:00Z +date: 2025-07-16T17:52:00Z type: docs weight: 700 menu: diff --git a/content/notes/seurat-bioinformatics/13-dimensionality.md b/content/notes/seurat-bioinformatics/13-dimensionality.md index f9300690..42cdf308 100644 --- a/content/notes/seurat-bioinformatics/13-dimensionality.md +++ b/content/notes/seurat-bioinformatics/13-dimensionality.md @@ -1,6 +1,6 @@ --- title: Determine Dimensionality -date: 2025-07-16-17:52:00Z +date: 2025-07-16T17:52:00Z type: docs weight: 750 menu: diff --git a/content/notes/seurat-bioinformatics/14-clustering-analys.md b/content/notes/seurat-bioinformatics/14-clustering-analys.md index c343a171..c9ba3715 100644 --- a/content/notes/seurat-bioinformatics/14-clustering-analys.md +++ b/content/notes/seurat-bioinformatics/14-clustering-analys.md @@ -1,6 +1,6 @@ --- title: Clustering Analysis -date: 2025-07-16-17:52:00Z +date: 2025-07-16T17:52:00Z type: docs weight: 800 menu: diff --git a/content/notes/seurat-bioinformatics/15-umap.md b/content/notes/seurat-bioinformatics/15-umap.md index b6be4a61..e083ea07 100644 --- a/content/notes/seurat-bioinformatics/15-umap.md +++ b/content/notes/seurat-bioinformatics/15-umap.md @@ -1,6 +1,6 @@ --- title: Non-Linear Dimensionality Reduction (UMAP) -date: 2025-07-16-17:52:00Z +date: 2025-07-16T17:52:00Z type: docs weight: 850 menu: diff --git a/content/notes/seurat-bioinformatics/16-biomarkers.md b/content/notes/seurat-bioinformatics/16-biomarkers.md index 311090e0..d5d1ae3b 100644 --- a/content/notes/seurat-bioinformatics/16-biomarkers.md +++ b/content/notes/seurat-bioinformatics/16-biomarkers.md @@ -1,6 +1,6 @@ --- title: Differential Expression -date: 2025-07-16-17:52:00Z +date: 2025-07-16T17:52:00Z type: docs weight: 900 menu: diff --git a/content/notes/seurat-bioinformatics/17-expression-vis.md b/content/notes/seurat-bioinformatics/17-expression-vis.md index 269313f2..d027b315 100644 --- a/content/notes/seurat-bioinformatics/17-expression-vis.md +++ b/content/notes/seurat-bioinformatics/17-expression-vis.md @@ -1,6 +1,6 @@ --- title: Visualize Expression Across Clusters -date: 2025-07-16-17:52:00Z +date: 2025-07-16T17:52:00Z type: docs weight: 950 menu: diff --git a/content/notes/seurat-bioinformatics/18-biomarkers.md b/content/notes/seurat-bioinformatics/18-biomarkers.md index ebeef036..3a6790a5 100644 --- a/content/notes/seurat-bioinformatics/18-biomarkers.md +++ b/content/notes/seurat-bioinformatics/18-biomarkers.md @@ -1,6 +1,6 @@ --- title: Known Biomarkers -date: 2025-07-16-17:52:00Z +date: 2025-07-16T17:52:00Z type: docs weight: 1000 menu: diff --git a/content/notes/seurat-bioinformatics/19-modifyingplots.md b/content/notes/seurat-bioinformatics/19-modifyingplots.md index b3bc6cac..addfe467 100644 --- a/content/notes/seurat-bioinformatics/19-modifyingplots.md +++ b/content/notes/seurat-bioinformatics/19-modifyingplots.md @@ -1,6 +1,6 @@ --- title: Modifying Plots -date: 2025-07-16-17:52:00Z +date: 2025-07-16T17:52:00Z type: docs weight: 1050 menu: diff --git a/content/notes/seurat-bioinformatics/20-recap.md b/content/notes/seurat-bioinformatics/20-recap.md index 9f114e9e..0ef889ff 100644 --- a/content/notes/seurat-bioinformatics/20-recap.md +++ b/content/notes/seurat-bioinformatics/20-recap.md @@ -1,6 +1,6 @@ --- title: Recap -date: 2025-07-16-17:52:00Z +date: 2025-07-16T17:52:00Z type: docs weight: 1100 menu: diff --git a/content/notes/seurat-bioinformatics/4a-interactive-workshop.md b/content/notes/seurat-bioinformatics/4a-interactive-workshop.md index 3d8ad083..8ef0c9f3 100644 --- a/content/notes/seurat-bioinformatics/4a-interactive-workshop.md +++ b/content/notes/seurat-bioinformatics/4a-interactive-workshop.md @@ -1,6 +1,6 @@ --- title: Interactive Workshop -date: 2025-07-16-17:52:00Z +date: 2025-07-16T17:52:00Z type: docs weight: 225 menu: diff --git a/content/notes/seurat-bioinformatics/_index.md b/content/notes/seurat-bioinformatics/_index.md index f971423e..a45588bd 100644 --- a/content/notes/seurat-bioinformatics/_index.md +++ b/content/notes/seurat-bioinformatics/_index.md @@ -1,12 +1,11 @@ --- title: Bioinformatics Data Visualization with Seurat -date: 2025-07-16-17:52:00Z +date: 2025-07-16T17:52:00Z authors: [mab, gka] categories: ["Bioinformatics"] tags: ["Bioinformatics"] type: docs weight: 1 -date: 2025-07-16-17:52:00Z menu: seurat-bioinformatics: diff --git a/content/notes/slurm-from-cli/_index.md b/content/notes/slurm-from-cli/_index.md index ee2b5005..bb11695e 100644 --- a/content/notes/slurm-from-cli/_index.md +++ b/content/notes/slurm-from-cli/_index.md @@ -1,6 +1,6 @@ --- title: The Slurm Resource Manager -date: "2023-12-11-14T00:00:00" +date: 2023-12-11T00:00:00Z type: docs weight: 1 menu: diff --git a/content/notes/slurm-from-cli/section1.md b/content/notes/slurm-from-cli/section1.md index 9e2716d0..826a1838 100644 --- a/content/notes/slurm-from-cli/section1.md +++ b/content/notes/slurm-from-cli/section1.md @@ -1,6 +1,6 @@ --- title: I - HPC and Resource Management -date: 2023-12-11-14T00:11:14Z +date: 2023-12-11T00:00:00Z type: docs weight: 10 toc: true diff --git a/content/notes/slurm-from-cli/section2.md b/content/notes/slurm-from-cli/section2.md index 22f1b137..4fd75123 100644 --- a/content/notes/slurm-from-cli/section2.md +++ b/content/notes/slurm-from-cli/section2.md @@ -1,6 +1,6 @@ --- title: II - Working with Slurm Scripts -date: 2023-12-11-14T00:11:14Z +date: 2023-12-11T00:00:00Z type: docs toc : true weight: 20 @@ -185,7 +185,7 @@ Open hello.slurm using any text editor you prefer and add the lines needed to pu When using Slurm in terminal mode, you will probably want to create your own folders to organize your Slurm scripts, any input files, and the output. You will need to be able to move around from one folder to another at the terminal. -By default, Slurm will start your job from the folder in which it was launched. You can change that with the `-D` option (directory) but many users simply navigate to the folder and type commands. +Having good directory organization can be key when running many different jobs on multiple datasets. ### Creating Files and Folders @@ -205,11 +205,11 @@ If you are familiar with the command line, you can use that. If you wish to lear #### Changing into a Directory -If you do not wish to learn the full command-line navigation, you will need to learn the `cd` command to get to your folder for launching your job. +If you do not wish to learn the full command-line navigation and have not viewed our tutorial, here are some command line basics that are needed for this tutorial. Log into a terminal in FastX, or open a terminal through the Clusters tab in Open OnDemand. -The `cd` command stands for "change directory." It is followed by a **path** to that directory. In the examples below, `mst3k` is a generic user ID. Substitute your own. +You will need to learn the `cd` command to get to your folder for launching your job. The `cd` command stands for "change directory." It is followed by a **path** to that directory. In the examples below, `mst3k` is a generic user ID. Substitute your own. ```bash $cd myworkdir @@ -225,9 +225,21 @@ $cd shakespeare $pwd /home/mst3k/shakespeare ``` +You will also need to move files around for better organization. To move single files, you can use either `cp` for "copy" or `mv` for "move". + +```bash +$cp newfile newfile2 +$cp newfile /home/mstk3/myprojectdir/newfile2 +$mv newfile newfile2 +``` +The first argument is the file you wish to copy/move, and the second is the destination. Copying a file retains the original, and move does not. Copying or moving entire folders requires the `-r` "recursive" option. + +```bash +$cp -r myprojectdir newprojectdir +``` **Exercise 3** -Use FastX or Open OnDemand or the command line to create a new folder under your scratch directory. Practice changing into and out of it. Move hello.slurm and hello.py into the newly created folder. +Use FastX, Open OnDemand, or the command line to create a new folder named Newproject under your home directory. Practice changing into and out of it. Copy or move hello.slurm and hello.py into the newly created folder. + -Use FastX and Caja to navigate to your /scratch directory. To get there, click Go in the Caja menu. A textbox will open. Be sure that “search for files” is unchecked. Erase whatever is in the textbox and type /scratch/mst3k (substituting your own user ID). Still in FastX, open a terminal (the black box, or in the System Tools menu) and navigate to your new scratch folder. diff --git a/content/notes/slurm-from-cli/section3.md b/content/notes/slurm-from-cli/section3.md index 846af178..ce9f25fb 100644 --- a/content/notes/slurm-from-cli/section3.md +++ b/content/notes/slurm-from-cli/section3.md @@ -1,6 +1,6 @@ --- title: III - Jobs on the Cluster -date: 2023-12-11-14T00:11:14Z +date: 2023-12-11T00:00:00Z type: docs toc : true weight: 30 @@ -8,12 +8,15 @@ menu: slurm-from-cli: --- -## Running Jobs from Scratch +## Directories for Jobs -We recommend that you run your jobs out of your /scratch directory. - * Your personal /scratch/mst3k folder has much more storage space than your home directory. - * /scratch is on a Weka filesystem, a storage system designed specifically for fast access. - * /scratch is connected to the compute nodes with Infiniband, a very fast network connection. +By default, Slurm will start your job from the folder in which it was launched. You can change that with the -D option (directory) but many users simply navigate to the folder and type commands. + +What folder you are submitting your job from matters. Not all filesystems are equal in performance and purpose, so it’s crucial to understand their differences to know what’s best for your jobs. In summary: + * Home - Good for jobs requiring small amounts of data. Best location to store software, so good to manage job scripts, code, and software all in one place. + * Scratch - Best place for running jobs using large numbers of files or large file sizes. High temporary storage capacity on a Weka filesystem which is designed for fast access. Scratch is regularly purged (see policy below). Ensure to backup irreplacable data and scripts once job completes. + * Standard - Leased storage great for sharing data within a research group. Filesystem is lowest in performance. Jobs with large file I/O will impact the system greatly. You should not run jobs here. + * Project - Versatile leased storage. Filesystem is higher performing and great for jobs. Its quota is adjustable, and is a space to share data within a research group. More expensive than Standard storage. {{< alert >}} The scratch system is not permanent storage, and files older than 90 days will be marked for deleting (purging). You should keep copies of your programs and data in more permanent locations such as your home directory, leased storage such as /project or /standard, or on your lab workstation. After your jobs finish, copy the results to permanent storage. @@ -38,7 +41,7 @@ Always remember that you submit your **job script** and not your executable or i **Exercise** -From your working directory where hello.slurm is, submit the job. +Navigate to your Newproject directory and submit the job. ## Monitoring a Job diff --git a/content/notes/slurm-from-cli/section4.md b/content/notes/slurm-from-cli/section4.md index 43ceb30f..a9984809 100644 --- a/content/notes/slurm-from-cli/section4.md +++ b/content/notes/slurm-from-cli/section4.md @@ -1,6 +1,6 @@ --- title: IV - Specialized Jobs -date: 2023-12-11-14T00:11:14Z +date: 2023-12-11T00:00:00Z type: docs toc: true weight: 40 diff --git a/content/notes/unix-tutorial/_index.md b/content/notes/unix-tutorial/_index.md index b35e3953..5718fd37 100644 --- a/content/notes/unix-tutorial/_index.md +++ b/content/notes/unix-tutorial/_index.md @@ -3,7 +3,7 @@ title: "UNIX Tutorials for Beginners" type: docs toc: true weight: 1 -date: "2023-12-11-14T00:00:00" +date: 2023-12-11T00:00:00Z menu: unix-tutorials: diff --git a/content/notes/unix-tutorial/introduction.md b/content/notes/unix-tutorial/introduction.md index de8e2e1d..c267d8f3 100644 --- a/content/notes/unix-tutorial/introduction.md +++ b/content/notes/unix-tutorial/introduction.md @@ -3,7 +3,7 @@ title: "Introduction to Unix" type: docs toc: true weight: 10 -date: 2023-12-11-14T00:11:14Z +date: 2023-12-11T00:00:00Z menu: unix-tutorials: diff --git a/content/notes/unix-tutorial/unix_tutorial_1.md b/content/notes/unix-tutorial/unix_tutorial_1.md index 1b4b6a47..07b54115 100644 --- a/content/notes/unix-tutorial/unix_tutorial_1.md +++ b/content/notes/unix-tutorial/unix_tutorial_1.md @@ -6,7 +6,7 @@ highlight_style: "github" toc: true type: docs weight: 20 -date: 2023-12-11-14T00:11:14Z +date: 2023-12-11T00:00:00Z menu: unix-tutorials: --- diff --git a/content/notes/unix-tutorial/unix_tutorial_2.md b/content/notes/unix-tutorial/unix_tutorial_2.md index c710b46e..d59318f8 100644 --- a/content/notes/unix-tutorial/unix_tutorial_2.md +++ b/content/notes/unix-tutorial/unix_tutorial_2.md @@ -1,13 +1,12 @@ --- title: "Working with Files" linktitle: "Tutorial 2: Working with Files" -date: 2019-04-29T11:06:47-04:00 draft: false highlight_style: "github" toc: true type: docs weight: 30 -date: 2023-12-11-14T00:11:14Z +date: 2023-12-11T00:00:00Z menu: unix-tutorials: --- diff --git a/content/notes/unix-tutorial/unix_tutorial_3.md b/content/notes/unix-tutorial/unix_tutorial_3.md index e8a816b3..3dd5a72b 100644 --- a/content/notes/unix-tutorial/unix_tutorial_3.md +++ b/content/notes/unix-tutorial/unix_tutorial_3.md @@ -1,13 +1,12 @@ --- title: "More About Files" linktitle: "Tutorial 3: More About Files" -date: 2019-04-29T11:06:47-04:00 draft: false highlight_style: "github" toc: true type: docs weight: 40 -date: 2023-12-11-14T00:11:14Z +date: 2023-12-11T00:00:00Z menu: unix-tutorials: --- diff --git a/content/notes/unix-tutorial/unix_tutorial_4.md b/content/notes/unix-tutorial/unix_tutorial_4.md index 8a6f8451..e6b142ea 100644 --- a/content/notes/unix-tutorial/unix_tutorial_4.md +++ b/content/notes/unix-tutorial/unix_tutorial_4.md @@ -1,13 +1,12 @@ --- title: "Wildcards and File Access" linktitle: "Tutorial 4: Wildcards and File Access" -date: 2019-04-29T11:06:47-04:00 draft: false highlight_style: "github" toc: true type: docs weight: 50 -date: 2023-12-11-14T00:11:14Z +date: 2023-12-11T00:00:00Z menu: unix-tutorials: --- diff --git a/content/notes/unix-tutorial/unix_tutorial_5.md b/content/notes/unix-tutorial/unix_tutorial_5.md index d4aabe6b..475bdfa5 100644 --- a/content/notes/unix-tutorial/unix_tutorial_5.md +++ b/content/notes/unix-tutorial/unix_tutorial_5.md @@ -1,13 +1,12 @@ --- title: "Processes and Jobs" linktitle: "Tutorial 5: Processes and Jobs" -date: 2019-04-29T11:06:47-04:00 draft: false highlight_style: "github" toc: true type: docs weight: 60 -date: 2023-12-11-14T00:11:14Z +date: 2023-12-11T00:00:00Z menu: unix-tutorials: --- diff --git a/content/notes/unix-tutorial/unix_tutorial_6.md b/content/notes/unix-tutorial/unix_tutorial_6.md index eac31234..7fc69c1c 100644 --- a/content/notes/unix-tutorial/unix_tutorial_6.md +++ b/content/notes/unix-tutorial/unix_tutorial_6.md @@ -1,13 +1,12 @@ --- title: "Other Useful Commands" linktitle: "Tutorial 6: Other Useful Commands" -date: 2019-04-29T11:06:47-04:00 draft: false highlight_style: "github" toc: true type: docs weight: 70 -date: 2023-12-11-14T00:11:14Z +date: 2023-12-11T00:00:00Z menu: unix-tutorials: --- diff --git a/content/notes/unix-tutorial/unix_tutorial_7.md b/content/notes/unix-tutorial/unix_tutorial_7.md index 25fae4e2..7334fbca 100644 --- a/content/notes/unix-tutorial/unix_tutorial_7.md +++ b/content/notes/unix-tutorial/unix_tutorial_7.md @@ -1,13 +1,12 @@ --- title: "Environment Variables" linktitle: "Tutorial 7: Environment Variables" -date: 2019-04-29T11:06:47-04:00 draft: false highlight_style: "github" toc: true type: docs weight: 80 -date: 2023-12-11-14T00:11:14Z +date: 2023-12-11T00:00:00Z menu: unix-tutorials: --- diff --git a/content/notes/vscode-intro/index.md b/content/notes/vscode-intro/index.md new file mode 100644 index 00000000..81c76b83 --- /dev/null +++ b/content/notes/vscode-intro/index.md @@ -0,0 +1,7 @@ +--- +title: "Introduction to VSCODE" +date: "2025-01-30T00:00:00" +authors: [Hana Parece] +--- + +Introduction to VSCode for HPC. diff --git a/content/tutorials/biopython/index.md b/content/tutorials/biopython/index.md index 7710a66d..794f98d2 100644 --- a/content/tutorials/biopython/index.md +++ b/content/tutorials/biopython/index.md @@ -1,6 +1,5 @@ --- title: "Biopython" -date: 2020-10-01T00:00:00 summary: "An introduction to using the Biopython package to develop Python scripts for bioinformatics analysis." diff --git a/content/tutorials/containers/index.md b/content/tutorials/containers/index.md index 0b7372aa..a7dbda15 100755 --- a/content/tutorials/containers/index.md +++ b/content/tutorials/containers/index.md @@ -2,7 +2,7 @@ title: "Introduction to Building and Deploying Containers" summary: "" authors: [cag] -date: 2023-5-12T00:00:00-05:00 +date: 2023-05-12T00:00:00-05:00 tags: ["Containers","R","Shiny","App_Development"] categories: ["Containers","Docker", "R", "Shiny", "App Development"] draft: false diff --git a/content/tutorials/genomics/index.md b/content/tutorials/genomics/index.md index d24aa4c5..d0ef56dd 100644 --- a/content/tutorials/genomics/index.md +++ b/content/tutorials/genomics/index.md @@ -2,7 +2,7 @@ title: Working with Genomic Data on HPC summary: "This tutorial introduces tools and resources for performing genome assembly and analysis with HPC." -Date: "2025-7-10T00:00:00" +date: "2025-07-10T00:00:00" authors: [dat, mab] tags: ["Bioinformatics", "Data_Analytics", "HPC"] diff --git a/content/tutorials/globus-data-transfer/index.md b/content/tutorials/globus-data-transfer/index.md index 721483f1..53560fdd 100644 --- a/content/tutorials/globus-data-transfer/index.md +++ b/content/tutorials/globus-data-transfer/index.md @@ -4,7 +4,7 @@ summary : "This tutorial will cover data transfer using Globus software." authors : [cag,kah] categories : ["Data Transfer","Globus"] tags : ["Data_Transfer", "Globus"] -date : 2024-2-10T00:00:00-05:00 +date : 2024-02-10T00:00:00-05:00 notes: globus-data-transfer url_video: https://youtu.be/bMcSqbDiFuo diff --git a/content/tutorials/matlab-optimization/index.md b/content/tutorials/matlab-optimization/index.md index 3f5d3020..270920bc 100644 --- a/content/tutorials/matlab-optimization/index.md +++ b/content/tutorials/matlab-optimization/index.md @@ -2,7 +2,6 @@ categories : [ "MATLAB" ] date : "2019-06-23T08:37:46-05:00" tags : [ "MATLAB" ] -categories : [ "MATLAB" ] title : "Optimization Techniques in MATLAB" summary : "This workshop introduces applied optimization in the MATLAB environment, focusing on using the Optimization Toolbox™ and the Global Optimization Toolbox™." authors : [teh] diff --git a/content/tutorials/python-high-performance/index.md b/content/tutorials/python-high-performance/index.md index 57a4c1c1..7ccee73c 100644 --- a/content/tutorials/python-high-performance/index.md +++ b/content/tutorials/python-high-performance/index.md @@ -1,9 +1,8 @@ --- title: "High Performance Programming in Python" summary: Tips and tricks for improving the performance of your Python code. -authors: [kah,khs] +# authors: [kah,khs] date: 2020-02-02T00:06:47-04:00 -draft: false categories: ["Python", "Programming", "HPC"] tags: ["Python","Programming","HPC"] authors: ["kah"] diff --git a/content/tutorials/vscode-intro/index.md b/content/tutorials/vscode-intro/index.md new file mode 100644 index 00000000..02d768a2 --- /dev/null +++ b/content/tutorials/vscode-intro/index.md @@ -0,0 +1,23 @@ +--- +title: Introduction to VS Code for HPC +summary: "This tutorial is an introduction to using VS Code for HPC" + +# Schedule page publish date (NOT talk date). +publishDate: "2025-01-30T00:00:00" + +authors: [Hana Parece] +tags: [HPC] +categories: ["HPC"] + +# Markdown Slides (optional). +# Associate this talk with Markdown slides. +# Simply enter your slide deck's filename without extension. +# E.g. 'slides = "example-slides"' references 'content/slides/example-slides.md'. +# Otherwise, set slides = "". + + +pdf: vscode-intro + +weight: 12 + +--- diff --git a/content/tutorials/vscode-intro/vscode-intro.pdf b/content/tutorials/vscode-intro/vscode-intro.pdf new file mode 100644 index 00000000..b6676520 Binary files /dev/null and b/content/tutorials/vscode-intro/vscode-intro.pdf differ diff --git a/layouts/_default/_markup/render-link.html b/layouts/_default/_markup/render-link.html new file mode 100644 index 00000000..088ebf72 --- /dev/null +++ b/layouts/_default/_markup/render-link.html @@ -0,0 +1,14 @@ +{{/* A Hugo Markdown render hook to parse links, opening external links in new tabs. */}} +{{ .Text | safeHTML }} \ No newline at end of file diff --git a/layouts/partials/book_layout.html b/layouts/partials/book_layout.html index e27cb460..24b03b4c 100644 --- a/layouts/partials/book_layout.html +++ b/layouts/partials/book_layout.html @@ -9,29 +9,13 @@
{{ partial "book_sidebar" . }}
- - {{/* Show ToC by default. */}} - {{ if ne .Params.toc false }} -
- {{ partial "hooks/page_toc_start" . }} - - - - {{ .TableOfContents }} - - {{ partial "hooks/page_toc_end" . }} -
- {{ end }} - -
+
{{ if $show_breadcrumb }} - {{ partial "breadcrumb" $current_page }} + {{ partial "breadcrumb" $current_page }} {{ end }}

{{ .Title }}

@@ -65,5 +49,21 @@

{{ .Title }}

{{ partial "site_footer" . }}
+ + {{/* Show ToC by default. */}} + {{ if ne .Params.toc false }} +
+ {{ partial "hooks/page_toc_start" . }} + + + + {{ .TableOfContents }} + + {{ partial "hooks/page_toc_end" . }} +
+ {{ end }} + - + \ No newline at end of file diff --git a/layouts/partials/book_sidebar.html b/layouts/partials/book_sidebar.html new file mode 100644 index 00000000..aca58d54 --- /dev/null +++ b/layouts/partials/book_sidebar.html @@ -0,0 +1,93 @@ + + + diff --git a/layouts/partials/site_footer.html b/layouts/partials/site_footer.html index 955d3998..9fbef991 100644 --- a/layouts/partials/site_footer.html +++ b/layouts/partials/site_footer.html @@ -3,7 +3,7 @@ RC Logo RC Logo {{ if not (in (slice "updates") .Type) }}