From 93d8b1bf624a85b0c4954f8b7b39133ec3f81237 Mon Sep 17 00:00:00 2001 From: joshremender Date: Wed, 20 May 2026 00:11:22 -0400 Subject: [PATCH 01/11] init scholar_ug --- docs/userguides/scholar/accounts.md | 40 ++++++ docs/userguides/scholar/compile.md | 10 ++ .../userguides/scholar/compile/compile_gpu.md | 0 .../userguides/scholar/compile/compile_mpi.md | 0 .../scholar/compile/compile_openmp.md | 0 .../scholar/compile/compile_serial.md | 0 docs/userguides/scholar/faqs.md | 10 ++ docs/userguides/scholar/gateway.md | 31 +++++ docs/userguides/scholar/gateway/files.md | 11 ++ .../scholar/gateway/interactive_apps.md | 78 +++++++++++ docs/userguides/scholar/index.md | 20 +++ docs/userguides/scholar/overview.md | 45 +++++++ .../scholar/run_jobs/apptainer_example.md | 121 ++++++++++++++++++ .../scholar/run_jobs/cancelling_job.md | 14 ++ .../scholar/run_jobs/checking_output.md | 33 +++++ .../creating_the_submission_script.md | 44 +++++++ .../userguides/scholar/run_jobs/directives.md | 43 +++++++ .../scholar/run_jobs/generic_slurm_jobs.md | 28 ++++ docs/userguides/scholar/run_jobs/gpu.md | 69 ++++++++++ .../scholar/run_jobs/holding_job.md | 32 +++++ docs/userguides/scholar/run_jobs/index.md | 42 ++++++ .../scholar/run_jobs/interactive_jobs.md | 32 +++++ .../scholar/run_jobs/job_dependencies.md | 14 ++ .../scholar/run_jobs/monitoring_job.md | 74 +++++++++++ .../scholar/run_jobs/monitoring_resources.md | 90 +++++++++++++ docs/userguides/scholar/run_jobs/mpi.md | 95 ++++++++++++++ .../scholar/run_jobs/multiple_node.md | 34 +++++ docs/userguides/scholar/run_jobs/openmp.md | 69 ++++++++++ .../scholar/run_jobs/python_example.md | 14 ++ docs/userguides/scholar/run_jobs/queues.md | 36 ++++++ docs/userguides/scholar/run_jobs/r_example.md | 14 ++ .../scholar/run_jobs/serial_jobs.md | 40 ++++++ .../userguides/scholar/run_jobs/simple_job.md | 50 ++++++++ .../scholar/run_jobs/submit_script.md | 73 +++++++++++ .../scholar/run_jobs/usage_monitoring.md | 90 +++++++++++++ docs/userguides/scholar/software.md | 10 ++ docs/userguides/scholar/storage.md | 10 ++ 37 files changed, 1416 insertions(+) create mode 100644 docs/userguides/scholar/accounts.md create mode 100644 docs/userguides/scholar/compile.md create mode 100644 docs/userguides/scholar/compile/compile_gpu.md create mode 100644 docs/userguides/scholar/compile/compile_mpi.md create mode 100644 docs/userguides/scholar/compile/compile_openmp.md create mode 100644 docs/userguides/scholar/compile/compile_serial.md create mode 100644 docs/userguides/scholar/faqs.md create mode 100644 docs/userguides/scholar/gateway.md create mode 100644 docs/userguides/scholar/gateway/files.md create mode 100644 docs/userguides/scholar/gateway/interactive_apps.md create mode 100644 docs/userguides/scholar/index.md create mode 100644 docs/userguides/scholar/overview.md create mode 100644 docs/userguides/scholar/run_jobs/apptainer_example.md create mode 100644 docs/userguides/scholar/run_jobs/cancelling_job.md create mode 100644 docs/userguides/scholar/run_jobs/checking_output.md create mode 100644 docs/userguides/scholar/run_jobs/creating_the_submission_script.md create mode 100644 docs/userguides/scholar/run_jobs/directives.md create mode 100644 docs/userguides/scholar/run_jobs/generic_slurm_jobs.md create mode 100644 docs/userguides/scholar/run_jobs/gpu.md create mode 100644 docs/userguides/scholar/run_jobs/holding_job.md create mode 100644 docs/userguides/scholar/run_jobs/index.md create mode 100644 docs/userguides/scholar/run_jobs/interactive_jobs.md create mode 100644 docs/userguides/scholar/run_jobs/job_dependencies.md create mode 100644 docs/userguides/scholar/run_jobs/monitoring_job.md create mode 100644 docs/userguides/scholar/run_jobs/monitoring_resources.md create mode 100644 docs/userguides/scholar/run_jobs/mpi.md create mode 100644 docs/userguides/scholar/run_jobs/multiple_node.md create mode 100644 docs/userguides/scholar/run_jobs/openmp.md create mode 100644 docs/userguides/scholar/run_jobs/python_example.md create mode 100644 docs/userguides/scholar/run_jobs/queues.md create mode 100644 docs/userguides/scholar/run_jobs/r_example.md create mode 100644 docs/userguides/scholar/run_jobs/serial_jobs.md create mode 100644 docs/userguides/scholar/run_jobs/simple_job.md create mode 100644 docs/userguides/scholar/run_jobs/submit_script.md create mode 100644 docs/userguides/scholar/run_jobs/usage_monitoring.md create mode 100644 docs/userguides/scholar/software.md create mode 100644 docs/userguides/scholar/storage.md diff --git a/docs/userguides/scholar/accounts.md b/docs/userguides/scholar/accounts.md new file mode 100644 index 00000000..65d38ce5 --- /dev/null +++ b/docs/userguides/scholar/accounts.md @@ -0,0 +1,40 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +{% set host = "scholar.rcac.purdue.edu" %} +{% set resource = "scholar" %} + +# Accounts on Scholar + +## Obtaining an Account + +All Purdue faculty may request access to Scholar for use in the classroom. Please use the [Accounts for Classes](https://www.rcac.purdue.edu/account/class/) tool to create accounts for your class. You will need to select the semester and CRN of the class. All students registered in that class will be added once the request is fulfilled. You may add additional instructors or TAs from the same tool. + +## Logging In + +There are several ways to login to Scholar: + +## Thinlinc Web Client + +One can login to the Gautschi front-end with a full desktop environment via the [Thinlinc web client](https://desktop.{{host}}) + +## Gateway / OnDemand + +One can login to Gautschi's [Gateway](https://gateway.{{host}}) to manage files in your home/scratch/depot directories and start Slurm jobs for supported OnDemand applications. + +## SSH Keys +{{ ssh_keys_snippet(resource) }} + +## SSH X11 Forwarding +{{ ssh_x11_snippet(resource) }} + +## Thinlinc +{{ thinlinc_snippet(resource) }} \ No newline at end of file diff --git a/docs/userguides/scholar/compile.md b/docs/userguides/scholar/compile.md new file mode 100644 index 00000000..7e5a19f0 --- /dev/null +++ b/docs/userguides/scholar/compile.md @@ -0,0 +1,10 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- \ No newline at end of file diff --git a/docs/userguides/scholar/compile/compile_gpu.md b/docs/userguides/scholar/compile/compile_gpu.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/userguides/scholar/compile/compile_mpi.md b/docs/userguides/scholar/compile/compile_mpi.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/userguides/scholar/compile/compile_openmp.md b/docs/userguides/scholar/compile/compile_openmp.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/userguides/scholar/compile/compile_serial.md b/docs/userguides/scholar/compile/compile_serial.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/userguides/scholar/faqs.md b/docs/userguides/scholar/faqs.md new file mode 100644 index 00000000..7e5a19f0 --- /dev/null +++ b/docs/userguides/scholar/faqs.md @@ -0,0 +1,10 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- \ No newline at end of file diff --git a/docs/userguides/scholar/gateway.md b/docs/userguides/scholar/gateway.md new file mode 100644 index 00000000..69e4df62 --- /dev/null +++ b/docs/userguides/scholar/gateway.md @@ -0,0 +1,31 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +# Gateway (Open OnDemand) + +Scholar's Gateway is an [open-source HPC portal](http://openondemand.org/) developed by the [Ohio Supercomputing Center](https://www.osc.edu/). Open OnDemand allows one to interact with HPC resources through a web browser and easily manage files, submit jobs, and interact with graphical applications directly in a browser, all with no software to install. Scholar has an instance of OnDemand available that can be accessed via [gateway.{{host}}](https://gateway.{{host}}). + +## Logging In + +To log into Gateway: + +- Navigate to [gateway.{{host}}](https://gateway.{{host}}) +- Log in using your Career account username and Purdue Microsoft Authenticator app. +- On the splash page you will see a quota usage report. If you are over 90% on any of your quotas a warning will be displayed. This information will update every 10-15 minutes while you are active on Gateway. + +## Apps + +There are a number of built-in apps in Gateway that can be accessed from the top menu bar. Below are links to documentation on each app. + +- [Interactive Apps](gateway/interactive_apps.md) +- [Files](gateway/files.md) +- [Jobs]() +- [Cluster Tools]() diff --git a/docs/userguides/scholar/gateway/files.md b/docs/userguides/scholar/gateway/files.md new file mode 100644 index 00000000..1cde5ece --- /dev/null +++ b/docs/userguides/scholar/gateway/files.md @@ -0,0 +1,11 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + diff --git a/docs/userguides/scholar/gateway/interactive_apps.md b/docs/userguides/scholar/gateway/interactive_apps.md new file mode 100644 index 00000000..eb35fd4d --- /dev/null +++ b/docs/userguides/scholar/gateway/interactive_apps.md @@ -0,0 +1,78 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +# Interactive Apps + +There are several interactive apps available through Gateway that can be accessed through the Interactive Apps dropdown menu. These apps are provided with a basic node and software configuration as a 'quick-launch' option to get your work up and running quickly. For simplicity, minimal options are provided - these apps are not intended for complex configuration/customization scenarios. + +After you a submit an interactive app to the queue, Gateway will track and manage the session. Once it starts, you may connect and disconnect from the session in your browser, leaving the job running while you log out of your browser. + +## Compute Node Desktop + +The Compute Node Desktop app will launch a graphical desktop session on a compute node. This is similar to using Thinlinc, however, this gives you a desktop directly on a compute node instead on a front-end. This app is useful if you have a custom application or application not directly available as an interactive app you would like to run inside Gateway. + +To launch a desktop session on a compute node, select the Scholar Compute Desktop app. From the submit form, select from the available options - the queue to which you wish to submit and the number of wallclock hours you wish to have job running. There is also a checkbox that enable a notification to your email when the job starts. + +After the interactive job is submitted you will be taken to your list of active interactive app sessions. You can monitor the status of the job from here until it starts, or if you enabled the email notification, watch your Purdue email for the notification the job has started. + +Once it is indicated the job has started you can connect to the desktop with the "Launch noVNC in New Tab" button. The session will be terminated after the wallclock hours you specified have elapsed or you terminate the session early with the "Delete" button from the list of sessions. Deleting the session when you are finished will free up queue resources for your lab mates and other users on the system. + +## Windows Desktop + +The Windows Desktop app will launch a Windows desktop session on a compute node. This is similar to using the Windows menu launcher through [Thinlinc](../accounts.md#thinlinc-web-client), however, this gives you a Windows desktop directly on a compute node instead on a front-end. + +To launch a Windows session on a compute node, select the Windows Desktop app. From the submit form, select from the available options - choose from the basic Windows configuration or the GIS configured image, the queue to which you wish to submit, and the number of wallclock hours you wish to have job running. There is also a checkbox that enable a notification to your email when the job starts. + +This will create a file in your scratch space called ```windows-base.qcow2``` or ```windows-gis.qcow2```. If the file already exists, the existing image will be restarted. You can delete or rename the image at any time through the [Files App](files.md) to generate a fresh image. You can only have one instance of the image running at a time or corruption will occur. There are lock files to prevent this, but be mindful of this restriction. It is also recommended you make periodic backups of the image if you are making any modifications to it. + +After the interactive job is submitted you will be taken to your list of active interactive app sessions. You can monitor the status of the job from here until it starts, or if you enabled the email notification, watch your Purdue email for the notification the job has started. + +Once it is indicated the job has started you can connect to the desktop with the "Launch noVNC in New Tab" button. The session will be terminated after the wallclock hours you specified have elapsed or you terminate the session early with the "Delete" button from the list of sessions. Deleting the session when you are finished will free up queue resources for your lab mates and other users on the system. + +## Jupyter Notebook + +The Notebook app will launch a Notebook session on a compute node and allow you to connect directly to it in a web browser. + +To launch a Notebook session on a compute node, select the Notebook app. From the submit form, select from the available options: + +- **Queue:** This is a dropdown menu from which you can select a queue from all of the queues to which you have permission to submit. +- **Walltime:** This is a field which expects a number and represents how many hours you want to keep the session running. Note that this value should not exceed the maximum value given next to the selected queue name from the queue dropdown menu. +- **Number of Cores/GPUs:** This is a field which expects a number and represents the number of your resources your session is requesting. Note that the amount of memory allocated for your session is proportional to the number of cores or GPUs that you request for your job, so if your session is running out of memory, consider increasing this value. +- **Use Jupyter Lab:** This is a checkbox which, when checked, will run Jupyter Lab instead of Jupyter Notebook. Both of these applications are interfaces to Jupyter, and you can launch Jupyter notebooks from within Jupyter Lab. Jupyter Notebook is more "barebones" while Jupyter Lab has additional features such as the ability to interact with additional file types. +- **E-mail Notice:** This is a checkbox which, when checked, will send you an e-mail notification to your Purdue e-mail that your session is ready when the scheduler has found resources to dedicate to your session. + +After the interactive job is submitted you will be taken to your list of active interactive app sessions. You can monitor the status of the job from here until it starts, or if you enabled the email notification, watch your Purdue email for the notification the job has started. + +Once it is indicated the job has started you can connect to the desktop with the "Connect to Jupyter" button. Once connected, you can create new notebooks, selecting the currently available Anaconda versions available as modules, and any personally created Notebook kernels. + +Often times you may want to use one of your existing Anaconda environments within your Jupyter session to use libraries specific to your workflow. In order to do so, you must ensure that the Anaconda environment you want to use contains the Python packages "IPyKernel" and "IPython" which are packages that are required by Jupyter. When you create a Jupyter session, Open OnDemand will check through your existing Anaconda environments and create a Jupyter kernel for any Anaconda environment that contains these two packages, and you will be able to select to use that kernel from within the application. + +The session will be terminated after the number of hours you specified have elapsed or you terminate the session early with the "Delete" button from the list of sessions. Deleting the session when you are finished will free up queue resources for your lab mates and other users on the system. + +## Matlab + +The MATLAB app will launch a MATLAB session on a compute node and allow you to connect directly to it in a web browser. + +To launch a MATLAB session on a compute node, select the MATLAB app. From the submit form, select from the available options - the version of MATLAB you are interested in running, the queue to which you wish to submit, and the number of wallclock hours you wish to have job running. There is also a checkbox that enable a notification to your email when the job starts. + +After the interactive job is submitted you will be taken to your list of active interactive app sessions. You can monitor the status of the job from here until it starts, or if you enabled the email notification, watch your Purdue email for the notification the job has started. + +Once it is indicated the job has started you can connect to the desktop with the "Launch noVNC in New Tab" button. The session will be terminated after the wallclock hours you specified have elapsed or you terminate the session early with the "Delete" button from the list of sessions. Deleting the session when you are finished will free up queue resources for your lab mates and other users on the system. + +## RStudio Server + +The RStudio app will launch a RStudio session on a compute node and allow you to connect directly to it in a web browser. + +To launch a RStudio session on a compute node, select the RStudio app. From the submit form, select from the available options - the queue to which you wish to submit, and the number of wallclock hours you wish to have job running. There is also a checkbox that enable a notification to your email when the job starts. + +After the interactive job is submitted you will be taken to your list of active interactive app sessions. You can monitor the status of the job from here until it starts, or if you enabled the email notification, watch your Purdue email for the notification the job has started. + +Once it is indicated the job has started you can connect to the desktop with the "Connect to RStudio Server" button. The session will be terminated after the wallclock hours you specified have elapsed or you terminate the session early with the "Delete" button from the list of sessions. Deleting the session when you are finished will free up queue resources for your lab mates and other users on the system. diff --git a/docs/userguides/scholar/index.md b/docs/userguides/scholar/index.md new file mode 100644 index 00000000..c1b73b97 --- /dev/null +++ b/docs/userguides/scholar/index.md @@ -0,0 +1,20 @@ +--- +# tags: +# - Scholar +authors: + - jin456 +search: + boost: 2 +--- + +# Scholar User Guide +Scholar is a small computer cluster, suitable for classroom learning about high performance computing (HPC). + +- [**Scholar Overview**](overview.md) +- [**Accounts**](accounts.md) +- [**Software**](software.md) +- [**Running Jobs**](run_jobs/index.md) +- [**File Storage and Transfer**](storage.md) +- [**Gateway (Open OnDemand)**](gateway.md) +- [**Compiling Source Code**](compile.md) +- [**Frequently Asked Questions**](faqs.md) diff --git a/docs/userguides/scholar/overview.md b/docs/userguides/scholar/overview.md new file mode 100644 index 00000000..7c512f7e --- /dev/null +++ b/docs/userguides/scholar/overview.md @@ -0,0 +1,45 @@ +--- +tags: + - Scholar +authors: + - jin456 +search: + boost: 2 +--- + +# Scholar Overview + +Scholar is a small computer cluster, suitable for classroom learning about high performance computing (HPC). It consists of 6 interactive login servers and 16 batch worker nodes. + +It can be accessed as a typical cluster, with a job scheduler distributing batch jobs onto its worker nodes, or as an interactive resource, with software packages available through a desktop-like environment on its login servers. + +If you have a class that you think will benefit from the use of Scholar, you can schedule it for your class through our [Class Account Request](https://www.rcac.purdue.edu/account/class) page. You only need to register your class itself. All students who register for the class will automatically get login privileges to the Scholar cluster. + +As a batch resource, the cluster has access to typical HPC software packages and tool chains; as an interactive resource, Scholar provides a Linux remote desktop, or a Jupyter notebook server, or an R Studio server. Jupyter and R Studio can be used by students without any reliance on Linux knowledge or experience. + +## Scholar Specifications + +### Scholar Front-Ends + +| Front-Ends | Number of Nodes | Processors per Node | Cores per Node | Memory per Node | Retires In | +| ---- | ---- | -------- | ---- | ---- | ---- | +| No GPU | 3 | Two AMD EPYC 9634 ("Genoa") 84-Core Processors | 168 | 384 GB | 2029 | +| GPU | 3 | Two Intel Xeon Gold 6126 ("Skylake") 12-Core Processors with one NVIDIA Tesla V100 32GB GPU | 24 | 768 GB | 2027 | + +### Scholar Sub-Clusters + +| Sub-Cluster | Number of Nodes | Processors per Node | Cores per Node | Memory per Node | Retires In | +| ---- | ---- | -------- | ---- | ---- | ---- | +| A | 4 | Two AMD EPYC 7713 ("Milan") 64-Core Processors | 128 | 256 GB | 2027 | +| B | 3 | One AMD EPYC 7702P ("Rome") 64-Core Processor | 64 | 256 GB | 2026 | +| G | 4 | Two Intel Xeon Silver 4110 ("Skylake") 8-Core Processors with one NVIDIA Tesla V100 16GB GPU | 16 | 192 GB | 2027 | +| H | 2 | Two AMD EPYC 7543 3rd generation ("Milan") 32-Core Processors with two NVIDIA A30 24GB GPUs | 64 | 512 GB | 2027 | +| H-MIG | 2 | Two AMD EPYC 7543 3rd generation ("Milan") 32-Core Processors with eight 6GB Multi-Instance GPUs (MIGs) configured from two NVIDIA A30 24GB GPUs | 64 | 512 GB | 2027 | +| I-MIG | 1 | Two AMD EPYC 9554 ("Genoa") 64-Core Processors with four 6GB Multi-Instance GPUs (MIGs) configured from one NVIDIA A30 24GB GPU | 128 | 384 GB | 2029 | +| J | 4 | Two Intel Xeon Gold 6126 ("Skylake") 12-Core Processors with two NVIDIA A40 48GB GPUs | 24 | 192 GB | 2029 | + +Faculty who would like to know more about Scholar, please read the [Faculty Guide](https://www.rcac.purdue.edu/policies/faculty) + +## Scholar Software Catalog + +A list of available applications on Scholar can be found [here](../../software/app_catalog.md). diff --git a/docs/userguides/scholar/run_jobs/apptainer_example.md b/docs/userguides/scholar/run_jobs/apptainer_example.md new file mode 100644 index 00000000..b3f390f0 --- /dev/null +++ b/docs/userguides/scholar/run_jobs/apptainer_example.md @@ -0,0 +1,121 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +!!! note + Note: Apptainer was formerly known as Singularity and is now a part of the [Linux Foundation](https://apptainer.org/news/community-announcement-20211130). When migrating from Singularity see the [user compatibility documentation](https://apptainer.org/docs/user/main/singularity_compatibility.html). + +## What is Apptainer? +Apptainer is an open-source container platform designed to be simple, fast, and secure. It allows the portability and reproducibility of operating systems and application environments through the use of Linux containers. It gives users complete control over their environment. + +Apptainer is like Docker but tuned explicitly for HPC clusters. More information is available on the [project’s website](https://apptainer.org/). + +## Features + +- Run the latest applications on an Ubuntu or Centos userland +- Gain access to the latest developer tools +- Launch MPI programs easily +- Much more + +Apptainer’s user guide is available at: [https://apptainer.org/docs/user/main/introduction.html](https://apptainer.org/docs/user/main/introduction.html) + +## Example +Here is an example using an Ubuntu 16.04 image on Scholar: + +```bash +apptainer exec /depot/itap/singularity/ubuntu1604.img cat /etc/lsb-release +DISTRIB_ID=Ubuntu +DISTRIB_RELEASE=16.04 +DISTRIB_CODENAME=xenial +DISTRIB_DESCRIPTION="Ubuntu 16.04 LTS" +``` + +Here is another example using a Centos 7 image: + +```bash +apptainer exec /depot/itap/singularity/centos7.img cat /etc/redhat-release +CentOS Linux release 7.3.1611 (Core) +``` + +## Purdue Cluster Specific Notes + +All service providers will integrate Apptainer slightly differently depending on site. The largest customization will be which default files are inserted into your images so that routine services will work. + +Services we configure for your images include DNS settings and account information. File systems we overlay into your images are your home directory, scratch, Data Depot, and application file systems. + +Here is a list of paths: + +- /etc/resolv.conf +- /etc/hosts +- /home/$USER +- /apps +- /scratch +- /depot + +This means that within the container environment these paths will be present and the same as outside the container. The ```/apps```, ```/scratch```, and ```/depot``` directories will need to exist _inside_ your container to work properly. + +## Creating Apptainer Images +You can build on your system or straight on the cluster (you do not need root privileges to build or run the container). + +You can find information and documentation for how to install and use Apptainer on your system: + +- [Install Apptainer on Windows or MacOS](https://apptainer.org/docs/admin/main/installation.html#installation-on-windows-or-mac) +- [Install Apptainer on Linux](https://apptainer.org/docs/admin/main/installation.html#installation-on-linux) + +We have version ```1.1.6``` (or newer) on the cluster. Please note that installed versions may change throughout cluster life time, so when in doubt, please check exact version with a ```--version``` command line flag: + +```bash +apptainer --version +apptainer version 1.3.3-1.el9 +``` + +Everything you need on how to [build a container](https://apptainer.org/docs/user/main/build_a_container.html) is available from their user guide. Below are merely some quick tips for getting your own containers built for Gautschi. + +You can use a [Definition File](https://apptainer.org/docs/user/main/definition_files.html) to both build your container and share its specification with collaborators (for the sake of reproducibility). Here is a simplistic example of such a file: + +```bash +# FILENAME: Buildfile + +Bootstrap: docker +From: ubuntu:18.04 + +%post + apt-get update && apt-get upgrade -y + mkdir /apps /depot /scratch +``` + +To build the image itself: + +```bash +apptainer build ubuntu-18.04.sif Buildfile +``` + +The challenge with this approach however is that it must start from scratch if you decide to change something. In order to create a container image iteratively and interactively, you can use the ```--sandbox``` option. + +```bash +apptainer build --sandbox ubuntu-18.04 docker://ubuntu:18.04 +``` + +This will not create a flat image file but a directory tree (i.e., a folder), the contents of which are the container's filesystem. In order to get a shell inside the container that allows you to modify it, user the ```--writable``` option. + +```bash +apptainer shell --writable ubuntu-18.04 +Apptainer> +``` + +You can then proceed to install any libraries, software, etc. within the container. Then to create the final image file, ```exit``` the shell and call the ```build``` command once more on the sandbox. + +```bash +apptainer build ubuntu-18.04.sif ubuntu-18.04 +``` + +Finally, copy the new image to Scholar and run it. + +[**Back to the Running Jobs section**](index.md) diff --git a/docs/userguides/scholar/run_jobs/cancelling_job.md b/docs/userguides/scholar/run_jobs/cancelling_job.md new file mode 100644 index 00000000..5ed816d1 --- /dev/null +++ b/docs/userguides/scholar/run_jobs/cancelling_job.md @@ -0,0 +1,14 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +--8<-- "docs/snippets/cancelling_job.md" + +[**Back to the Running Jobs section**](index.md) diff --git a/docs/userguides/scholar/run_jobs/checking_output.md b/docs/userguides/scholar/run_jobs/checking_output.md new file mode 100644 index 00000000..9fc3d38a --- /dev/null +++ b/docs/userguides/scholar/run_jobs/checking_output.md @@ -0,0 +1,33 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +# Checking the job output + +Once a job is submitted, and has started, it will write its standard output and standard error to files that you can read. + +SLURM catches output written to standard output and standard error - what would be printed to your screen if you ran your program interactively. Unless you specfied otherwise, SLURM will put the output in the directory where you submitted the job in a file named ```slurm-``` followed by the ```job id```, with the extension ```out```. For example ```slurm-3509.out```. Note that both stdout and stderr will be written into the same file, unless you specify otherwise. + +If your program writes its own output files, those files will be created as defined by the program. This may be in the directory where the program was run, or may be defined in a configuration or input file. You will need to check the documentation for your program for more details. + +## Redirecting Job Output + +It is possible to redirect job output to somewhere other than the default location with the ```--error``` and ```--output``` directives: + +```bash +#!/bin/bash +#SBATCH --output=/home/myusername/joboutput/myjob.out +#SBATCH --error=/home/myusername/joboutput/myjob.out + +# This job prints "Hello World" to output and exits +echo "Hello World" +``` + +[**Back to the Running Jobs section**](index.md) diff --git a/docs/userguides/scholar/run_jobs/creating_the_submission_script.md b/docs/userguides/scholar/run_jobs/creating_the_submission_script.md new file mode 100644 index 00000000..3c010479 --- /dev/null +++ b/docs/userguides/scholar/run_jobs/creating_the_submission_script.md @@ -0,0 +1,44 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +# Creating the Submission Script + +To submit work to a SLURM queue, you must first create a job submission file. This job submission file is essentially a simple shell script. It will set any required environment variables, load any necessary modules, create or modify files and directories, and run any applications that you need: + +```bash +#!/bin/bash +# FILENAME: myjobsubmissionfile + +# Loads Matlab and sets the application up +module load matlab + +# Change to the directory from which you originally submitted this job. +cd $SLURM_SUBMIT_DIR + +# Runs a Matlab script named 'myscript' +matlab -nodisplay -singleCompThread -r myscript +``` + +## Job Script Environment Variables + +SLURM sets several potentially useful environment variables which you may use within your job submission files. Here is a list of some: + +| Name | Description +| -------- | ----- | +| SLURM_SUBMIT_DIR | Absolute path of the current working directory when you submitted this job | +| SLURM_JOBID | Job ID number assigned to this job by the batch system | +| SLURM_JOB_NAME | Job name supplied by the user | +| SLURM_JOB_NODELIST | Names of nodes assigned to this job | +| SLURM_CLUSTER_NAME | Name of the cluster executing the job | +| SLURM_SUBMIT_HOST | Hostname of the system where you submitted this job | +| SLURM_JOB_PARTITION | Name of the original queue to which you submitted this job | + +[**Back to the Running Jobs section**](index.md) diff --git a/docs/userguides/scholar/run_jobs/directives.md b/docs/userguides/scholar/run_jobs/directives.md new file mode 100644 index 00000000..bd0bc69a --- /dev/null +++ b/docs/userguides/scholar/run_jobs/directives.md @@ -0,0 +1,43 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +So far these examples have shown submitting jobs with the resource requests on the ```sbatch``` command line such as: + +```bash +sbatch -A scholar --nodes=1 --time=00:01:00 hello.sub +``` + +The resource requests can also be put into job submission file itself. Documenting the resource requests in the job submission is desirable because the job can be easily reproduced later. Details left in your command history are quickly lost. Arguments are specified with the ```#SBATCH``` syntax: + +```bash +#!/bin/bash + +# FILENAME: hello.sub + +#SBATCH -A scholar + +#SBATCH --nodes=1 --time=00:01:00 + +# Show this ran on a compute node by running the hostname command. +hostname + +echo "Hello World" +``` + +The ```#SBATCH``` directives must appear at the top of your submission file. SLURM will stop parsing directives as soon as it encounters a line that does not start with '#'. If you insert a directive in the middle of your script, it will be ignored. + +This job can be then submitted with: + +```bash +sbatch hello.sub +``` + +[**Back to the Example Jobs section**](generic_slurm_jobs.md) diff --git a/docs/userguides/scholar/run_jobs/generic_slurm_jobs.md b/docs/userguides/scholar/run_jobs/generic_slurm_jobs.md new file mode 100644 index 00000000..8d397798 --- /dev/null +++ b/docs/userguides/scholar/run_jobs/generic_slurm_jobs.md @@ -0,0 +1,28 @@ +--- +tags: + - Scholar +authors: + - jin456 + - remender +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +# Generic SLURM Jobs + +There are several types of generic SLURM jobs. Choose one below to learn more: + +- [**Simple Job**](simple_job.md) +- [**Multiple Node Job**](multiple_node.md) +- [**Directives**](directives.md) +- [**Interactive Jobs**](interactive_jobs.md) +- [**Serial Jobs**](serial_jobs.md) +- [**OpenMP**](openmp.md) +- [**MPI**](mpi.md) +- [**GPU**](gpu.md) +- [**Monitoring Resources**](monitoring_resources.md) + + +[**Back to the Running Jobs section**](index.md) diff --git a/docs/userguides/scholar/run_jobs/gpu.md b/docs/userguides/scholar/run_jobs/gpu.md new file mode 100644 index 00000000..306d85f2 --- /dev/null +++ b/docs/userguides/scholar/run_jobs/gpu.md @@ -0,0 +1,69 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +# GPU Jobs + +The Scholar cluster nodes contain NVIDIA GPUs that support CUDA and OpenCL. See the [detailed hardware overview](../overview.md) for the specifics on the GPUs in Scholar. + +This section illustrates how to use SLURM to submit a simple GPU program. + +Suppose that you named your executable file ```gpu_hello``` from the sample code [gpu_hello.cu](../../../assets/scripts/userguides/compile/src/gpu_hello.cu) (see the section on [compiling NVIDIA GPU codes](../compile/compile_gpu.md)). Prepare a job submission file with an appropriate name, here named ```gpu_hello.sub```: + +```bash +#!/bin/bash +# FILENAME: gpu_hello.sub + +module load cuda + +host=`hostname -s` + +echo $CUDA_VISIBLE_DEVICES + +# Run on the first available GPU +./gpu_hello 0 +``` + +Submit the job: + +```bash +sbatch -A gpu --nodes=1 --gres=gpu:1 -t 00:01:00 gpu_hello.sub +``` + +**Requesting a GPU from the scheduler is required.** You can specify total number of GPUs, or number of GPUs per node, or even number of GPUs per task: + +```bash +sbatch -A gpu --nodes=1 --gres=gpu:1 -t 00:01:00 gpu_hello.sub +sbatch -A gpu --nodes=1 --gpus-per-node=1 -t 00:01:00 gpu_hello.sub +sbatch -A gpu --nodes=1 --gpus-per-task=1 -t 00:01:00 gpu_hello.sub +``` + +After job completion, view the new output file in your directory: + +```bash +ls -l +gpu_hello +gpu_hello.cu +gpu_hello.sub +slurm-myjobid.out +``` + +View results in the file for all standard output, ```slurm-myjobid.out``` + +```bash +0 +hello, world +``` + +If the job failed to run, then view error messages in the file ```slurm-myjobid.out```. + +To use multiple GPUs in your job, simply specify a larger value to the GPU specification parameter. However, be aware of the number of GPUs installed on the node(s) you may be requesting. The scheduler can not allocate more GPUs than physically exist. See [detailed hardware overview](../overview.md) and output of ```sfeatures``` command for the specifics on the GPUs in Scholar. + +[**Back to the Example Jobs section**](generic_slurm_jobs.md) diff --git a/docs/userguides/scholar/run_jobs/holding_job.md b/docs/userguides/scholar/run_jobs/holding_job.md new file mode 100644 index 00000000..d309ea68 --- /dev/null +++ b/docs/userguides/scholar/run_jobs/holding_job.md @@ -0,0 +1,32 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +# Holding a job + +Sometimes you may want to submit a job but not have it run just yet. You may be wanting to allow lab mates to cut in front of you in the queue - so hold the job until their jobs have started, and then release yours. + +To place a hold on a job before it starts running, use the ```scontrol hold job``` command: + +```bash +$ scontrol hold job myjobid +``` + +Once a job has started running it can not be placed on hold. + +To release a hold on a job, use the ```scontrol release job``` command: + +```bash +$ scontrol release job myjobid +``` + +You find the job ID using the ```squeue``` command as explained in the [Monitoring a job](monitoring_job.md) section. + +[**Back to the Running Jobs section**](index.md) diff --git a/docs/userguides/scholar/run_jobs/index.md b/docs/userguides/scholar/run_jobs/index.md new file mode 100644 index 00000000..c5e1e963 --- /dev/null +++ b/docs/userguides/scholar/run_jobs/index.md @@ -0,0 +1,42 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: Scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +# Running Jobs + +Jobs are submitted on {{ resource }} via the SLURM (Simple Linux Utility for Resource Management) scheduler, which is responsible for allocating resources and scheduling the start time of a job. You may use either the batch or interactive mode to run your jobs. The batch mode is ideal for finished programs, and the interactive mode is useful for debugging your job. + +!!! important + Do NOT run large, long, multi-threaded, parallel, or CPU-intensive jobs on a front-end login host. All users share the front-end hosts, and running anything but the smallest test job will negatively impact everyone's ability to use Gautschi. Always use SLURM to submit your work as a job. + +Before creating your submission script, learn more about how to use Slurm accounts, partitions, and QOS options: + +- [**Basics of using Slurm accounts, partitions, and QOS options**](queues.md) + +Batch jobs submitted via SLURM have four main steps: + +- [**Creating the submission script**](creating_the_submission_script.md) +- [**Submitting the script as a job**](submit_script.md) +- [**Monitoring the job**](monitoring_job.md) +- [**Checking the job output**](checking_output.md) + +### Other useful topics + +- [**Holding a job**](holding_job.md) +- [**Job Dependencies**](job_dependencies.md) +- [**Cancelling a job**](cancelling_job.md) +- [**Usage Monitoring**](usage_monitoring.md) + +### Example jobs + +- [**Generic SLURM jobs**](generic_slurm_jobs.md) +- [**Python**](python_example.md) +- [**R**](r_example.md) +- [**Apptainer**](apptainer_example.md) diff --git a/docs/userguides/scholar/run_jobs/interactive_jobs.md b/docs/userguides/scholar/run_jobs/interactive_jobs.md new file mode 100644 index 00000000..b9b67498 --- /dev/null +++ b/docs/userguides/scholar/run_jobs/interactive_jobs.md @@ -0,0 +1,32 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +# Running interactive jobs on Scholar + +Interactive jobs are run on compute nodes, while giving you a shell to interact with. They give you the ability to type commands or use a graphical interface in the same way as if you were on a front-end login host. + +To submit an interactive job, use ```sinteractive``` to run a login shell on allocated resources. + +```sinteractive``` accepts most of the same resource requests as ```sbatch```, so to request a login shell on the cpu account while allocating 2 nodes and 40 total cores, you might do: + +```bash +sinteractive -A cpu -N2 -n40 +``` + +To quit your interactive job: + +```bash +exit or Ctrl-D +``` + +The above example will allocate the total of 40 CPU cores across 2 nodes. Note that if your multi-node job requests fewer than each node's full 20 cores per node, by default Slurm provides no guarantee with respect to how this total is distributed between assigned nodes (i.e. the cores may not necessarily be split evenly). If you need specific arrangements of your tasks and cores, you can use ```--cpus-per-task=``` and/or ```--ntasks-per-node=``` flags. See [Slurm documentation](https://slurm.schedmd.com/salloc.html) or ```man salloc``` for more options. + +[**Back to the Example Jobs section**](generic_slurm_jobs.md) diff --git a/docs/userguides/scholar/run_jobs/job_dependencies.md b/docs/userguides/scholar/run_jobs/job_dependencies.md new file mode 100644 index 00000000..cc670e7e --- /dev/null +++ b/docs/userguides/scholar/run_jobs/job_dependencies.md @@ -0,0 +1,14 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +--8<-- "docs/snippets/job_dependencies.md" + +[**Back to the Running Jobs section**](index.md) diff --git a/docs/userguides/scholar/run_jobs/monitoring_job.md b/docs/userguides/scholar/run_jobs/monitoring_job.md new file mode 100644 index 00000000..c1edd8c1 --- /dev/null +++ b/docs/userguides/scholar/run_jobs/monitoring_job.md @@ -0,0 +1,74 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +# Monitoring the Job + +Once a job is submitted there are several commands you can use to monitor the progress of the job. + +To see your jobs, use the squeue -u command and specify your username: + +!!!note + Remember, in Scholar's SLURM environment a queue is referred to as an 'Account' + +```bash +squeue -u myusername + + JOBID ACCOUNT NAME USER ST TIME NODES NODELIST(REASON) + 182792 scholar job1 myusername R 20:19 1 scholar-a000 + 185841 scholar job2 myusername R 20:19 1 scholar-a001 + 185844 scholar job3 myusername R 20:18 1 scholar-a002 + 185847 scholar job4 myusername R 20:18 1 scholar-a003 +``` + +To retrieve useful information about your queued or running job, use the ```scontrol show job``` command with your job's ID number. The output should look similar to the following: + +```bash +scontrol show job 3519 + +JobId=3519 JobName=t.sub + UserId=myusername GroupId=mygroup MCS_label=N/A + Priority=3 Nice=0 Account=(null) QOS=(null) + JobState=PENDING Reason=BeginTime Dependency=(null) + Requeue=1 Restarts=0 BatchFlag=1 Reboot=0 ExitCode=0:0 + RunTime=00:00:00 TimeLimit=7-00:00:00 TimeMin=N/A + SubmitTime=2019-08-29T16:56:52 EligibleTime=2019-08-29T23:30:00 + AccrueTime=Unknown + StartTime=2019-08-29T23:30:00 EndTime=2019-09-05T23:30:00 Deadline=N/A + PreemptTime=None SuspendTime=None SecsPreSuspend=0 + LastSchedEval=2019-08-29T16:56:52 + Partition=workq AllocNode:Sid=mack-fe00:54476 + ReqNodeList=(null) ExcNodeList=(null) + NodeList=(null) + NumNodes=1 NumCPUs=2 NumTasks=2 CPUs/Task=1 ReqB:S:C:T=0:0:*:* + TRES=cpu=2,node=1,billing=2 + Socks/Node=* NtasksPerN:B:S:C=0:0:*:* CoreSpec=* + MinCPUsNode=1 MinMemoryNode=0 MinTmpDiskNode=0 + Features=(null) DelayBoot=00:00:00 + OverSubscribe=OK Contiguous=0 Licenses=(null) Network=(null) + Command=/home/myusername/jobdir/myjobfile.sub + WorkDir=/home/myusername/jobdir + StdErr=/home/myusername/jobdir/slurm-3519.out + StdIn=/dev/null + StdOut=/home/myusername/jobdir/slurm-3519.out + Power= +``` + +There are several useful bits of information in this output. + +- ```JobState``` lets you know if the job is Pending, Running, Completed, or Held. +- ```RunTime``` and ```TimeLimit``` will show how long the job has run and its maximum time. +- ```SubmitTime``` is when the job was submitted to the cluster. +- ```NumNodes```, ```NumCPUs```, ```NumTasks``` and ```CPUs/Task``` are the number of Nodes, CPUs, Tasks, and CPUs per Task are shown. +- ```WorkDir``` is the job's working directory. +- ```StdOut``` and ```Stderr``` are the locations of stdout and stderr of the job, respectively. +- ```Reason``` will show why a ```PENDING``` job isn't running. The above error says that it has been requested to start at a specific, later time. + +[**Back to the Running Jobs section**](index.md) diff --git a/docs/userguides/scholar/run_jobs/monitoring_resources.md b/docs/userguides/scholar/run_jobs/monitoring_resources.md new file mode 100644 index 00000000..f467f17d --- /dev/null +++ b/docs/userguides/scholar/run_jobs/monitoring_resources.md @@ -0,0 +1,90 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +### Collecting System Resource Utilization Data + +Knowing the precise resource utilization an application had during a job, such as CPU load or memory, can be incredibly useful. This is especially the case when the application isn't performing as expected. + +One approach is to run a program like ```htop``` during an interactive job and keep an eye on system resources. You can get precise time-series data from nodes associated with your job using [XDmod](https://xdmod.rcac.purdue.edu/) as well, online. But these methods don't gather telemetry in an automated fashion, nor do they give you control over the resolution or format of the data. + +As a matter of course, a robust implementation of some HPC workload would include resource utilization data as a diagnostic tool in the event of some failure. + +The ```monitor``` utility is a simple command line system resource monitoring tool for gathering such telemetry and is available as a module. + +```bash +module load monitor +``` + +Complete documentation is available online at [resource-monitor.readthedocs.io](https://resource-monitor.readthedocs.io/en/latest/). A full manual page is also available for reference, ``man monitor```. + +In the context of a SLURM job you will need to put this monitoring task in the background to allow the rest of your job script to proceed. Be sure to interrupt these tasks at the end of your job. + +```bash +#!/bin/bash +# FILENAME: monitored_job.sh + + module load monitor + +# track per-code CPU load +monitor cpu percent --all-cores >cpu-percent.log & +CPU_PID=$! + +# track memory usage +monitor cpu memory >cpu-memory.log & +MEM_PID=$! + +# your code here + +# shut down the resource monitors +kill -s INT $CPU_PID $MEM_PID +``` + +A particularly elegant solution would be to include such tools in your ```prologue``` script and have the tear down in your ```epilogue``` script. + +For large distributed jobs spread across multiple nodes, ```mpiexec``` can be used to gather telemetry from all nodes in the job. The hostname is included in each line of output so that data can be grouped as such. A concise way of constructing the needed list of hostnames in SLURM is to simply use ```srun hostname | sort -u```. + +```bash +#!/bin/bash +# FILENAME: monitored_job.sh + +module load monitor + +# track all CPUs (one monitor per host) +mpiexec -machinefile <(srun hostname | sort -u) \ + monitor cpu percent --all-cores >cpu-percent.log & +CPU_PID=$! + +# track memory on all hosts (one monitor per host) +mpiexec -machinefile <(srun hostname | sort -u) \ + monitor cpu memory >cpu-memory.log & +MEM_PID=$! + +# your code here + +# shut down the resource monitors +kill -s INT $CPU_PID $MEM_PID +``` + +To get resource data in a more readily computable format, the ```monitor``` program can be told to output in CSV format with the ```--csv``` flag. + +```bash +monitor cpu memory --csv >cpu-memory.csv +``` + +For a distributed job you will need to suppress the header lines otherwise one will be created by each host. + +```bash +monitor cpu memory --csv | head -1 >cpu-memory.csv +mpiexec -machinefile <(srun hostname | sort -u) \ + monitor cpu memory --csv --no-header >>cpu-memory.csv +``` + +[**Back to the Example Jobs section**](generic_slurm_jobs.md) diff --git a/docs/userguides/scholar/run_jobs/mpi.md b/docs/userguides/scholar/run_jobs/mpi.md new file mode 100644 index 00000000..8bee0253 --- /dev/null +++ b/docs/userguides/scholar/run_jobs/mpi.md @@ -0,0 +1,95 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +# MPI Jobs + +An MPI job is a set of processes that take advantage of multiple compute nodes by communicating with each other. OpenMPI and Intel MPI (IMPI) are implementations of the MPI standard. + +This section shows how to submit one of the MPI programs compiled in the section [Compiling MPI Programs](../compile/compile_mpi.md). + +Use ```module load``` to set up the paths to access these libraries. Use ```module avail``` to see all MPI packages installed on Scholar. + +Create a job submission file: + +```bash +#!/bin/bash +# FILENAME: mpi_hello.sub +#SBATCH --nodes=2 +#SBATCH --ntasks-per-node=20 +#SBATCH --time=00:01:00 +#SBATCH -A scholar + +srun -n 40 ./mpi_hello +``` + +SLURM can run an MPI program with the ```srun``` command. The number of processes is requested with the -n option. If you do not specify the ```-n``` option, it will default to the total number of processor cores you request from SLURM. + +If the code is built with OpenMPI, it can be run with a simple ```srun -n``` command. If it is built with Intel IMPI, then you also need to add the ```--mpi=pmi2``` option: ```srun --mpi=pmi2 -n 40 ./mpi_hello``` in this example. + +Submit the MPI job: + +```bash +sbatch ./mpi_hello.sub +``` + +View results in the output file: + +```bash +cat slurm-myjobid.out +Runhost:scholar-a010.rcac.purdue.edu Rank:0 of 40 ranks hello, world +Runhost:scholar-a010.rcac.purdue.edu Rank:1 of 40 ranks hello, world +... +Runhost:scholar-a011.rcac.purdue.edu Rank:20 of 40 ranks hello, world +Runhost:scholar-a011.rcac.purdue.edu Rank:21 of 40 ranks hello, world +... +``` + +If the job failed to run, then view error messages in the output file. + +If an MPI job uses a lot of memory and 20 MPI ranks per compute node use all of the memory of the compute nodes, request more compute nodes, while keeping the total number of MPI ranks unchanged. + +Submit the job with double the number of compute nodes and modify the resource request to halve the number of MPI ranks per compute node. + +```bash +#!/bin/bash +# FILENAME: mpi_hello.sub + +#SBATCH --nodes=4 +#SBATCH --ntasks-per-node=10 +#SBATCH -t 00:01:00 +#SBATCH -A scholar + +srun -n 40 ./mpi_hello + +sbatch ./mpi_hello.sub +``` + +View results in the output file: + +```bash +cat slurm-myjobid.out +Runhost:scholar-a10.rcac.purdue.edu Rank:0 of 40 ranks hello, world +Runhost:scholar-a010.rcac.purdue.edu Rank:1 of 40 ranks hello, world +... +Runhost:scholar-a011.rcac.purdue.edu Rank:10 of 40 ranks hello, world +... +Runhost:scholar-a012.rcac.purdue.edu Rank:20 of 40 ranks hello, world +... +Runhost:scholar-a013.rcac.purdue.edu Rank:30 of 40 ranks hello, world +... +``` + +!!!note + - Use ```slist``` to determine which queues (```--account``` or ```-A``` option) are available to you. The name of the queue which is available to everyone on Scholar is "scholar". + - Invoking an MPI program on Scholar with ```./program``` is typically wrong, since this will use only one MPI process and defeat the purpose of using MPI. Unless that is what you want (rarely the case), you should use ```srun``` or ```mpiexec``` to invoke an MPI program. + - In general, the exact order in which MPI ranks output similar write requests to an output file is random. + +[**Back to the Example Jobs section**](generic_slurm_jobs.md) diff --git a/docs/userguides/scholar/run_jobs/multiple_node.md b/docs/userguides/scholar/run_jobs/multiple_node.md new file mode 100644 index 00000000..ae540e03 --- /dev/null +++ b/docs/userguides/scholar/run_jobs/multiple_node.md @@ -0,0 +1,34 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +# Multiple Node Job + +In some cases, you may want to request multiple nodes. To utilize multiple nodes, you will need to have a program or code that is specifically programmed to use multiple nodes such as with MPI. Simply requesting more nodes will not make your work go faster. Your code must support this ability. + +This example shows a request for multiple compute nodes. The job submission file contains a single command to show the names of the compute nodes allocated: + +```bash +# FILENAME: myjobsubmissionfile.sub +#!/bin/bash +echo "$SLURM_JOB_NODELIST" + +sbatch --nodes=2 --ntasks=40 --time=00:10:00 -A scholar myjobsubmissionfile.sub +``` + +Compute nodes allocated: + +```bash +scholar-a[014-015] +``` + +The above example will allocate the total of 40 CPU cores across 2 nodes. Note that if your multi-node job requests fewer than each node's full 20 cores per node, by default Slurm provides no guarantee with respect to how this total is distributed between assigned nodes (i.e. the cores may not necessarily be split evenly). If you need specific arrangements of your tasks and cores, you can use ```--cpus-per-task=``` and/or ```--ntasks-per-node=``` flags. See [Slurm documentation](https://slurm.schedmd.com/sbatch.html) or ```man sbatch``` for more options. + +[**Back to the Example Jobs section**](generic_slurm_jobs.md) diff --git a/docs/userguides/scholar/run_jobs/openmp.md b/docs/userguides/scholar/run_jobs/openmp.md new file mode 100644 index 00000000..8f43e4cf --- /dev/null +++ b/docs/userguides/scholar/run_jobs/openmp.md @@ -0,0 +1,69 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +# OpenMP Jobs + +A shared-memory job is a single process that takes advantage of a multi-core processor and its shared memory to achieve parallelization. + +This example shows how to submit an OpenMP program compiled in the section [Compiling OpenMP Programs](../compile/compile_openmp.md). + +!!!note + When running OpenMP programs, all threads must be on the same compute node to take advantage of shared memory. The threads cannot communicate between nodes. + +To run an OpenMP program, set the environment variable OMP_NUM_THREADS to the desired number of threads: + +In csh: + +```csh +setenv OMP_NUM_THREADS 20 +``` + +In Bash: + +```bash +export OMP_NUM_THREADS=20 +``` + +This should almost always be equal to the number of cores on a compute node. You may want to set to another appropriate value if you are running several processes in parallel in a single job or node. + +Create a job submissionfile: + +```bash +#!/bin/bash +# FILENAME: omp_hello.sub +#SBATCH --nodes=1 +#SBATCH --ntasks=20 +#SBATCH --time=00:01:00 + +export OMP_NUM_THREADS=20 +./omp_hello +``` + +Submit the job: + +```bash +sbatch omp_hello.sub +``` + +View the results from one of the sample OpenMP programs about task parallelism: + +```bash +cat omp_hello.sub.omyjobid +SERIAL REGION: Runhost:scholar-a003.rcac.purdue.edu Thread:0 of 1 thread hello, world +PARALLEL REGION: Runhost:scholar-a003.rcac.purdue.edu Thread:0 of 20 threads hello, world +PARALLEL REGION: Runhost:scholar-a003.rcac.purdue.edu Thread:1 of 20 threads hello, world +``` + +If the job failed to run, then view error messages in the file ```slurm-myjobid.out```. + +If an OpenMP program uses a lot of memory and 20 threads use all of the memory of the compute node, use fewer processor cores (OpenMP threads) on that compute node. + +[**Back to the Example Jobs section**](generic_slurm_jobs.md) diff --git a/docs/userguides/scholar/run_jobs/python_example.md b/docs/userguides/scholar/run_jobs/python_example.md new file mode 100644 index 00000000..0baaee55 --- /dev/null +++ b/docs/userguides/scholar/run_jobs/python_example.md @@ -0,0 +1,14 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +--8<-- "docs/snippets/apps/python.md" + +[**Back to the Running Jobs section**](index.md) diff --git a/docs/userguides/scholar/run_jobs/queues.md b/docs/userguides/scholar/run_jobs/queues.md new file mode 100644 index 00000000..5f4e7d6b --- /dev/null +++ b/docs/userguides/scholar/run_jobs/queues.md @@ -0,0 +1,36 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +# Queues + +## Scholar Queue + +This is the default queue for submitting jobs on Scholar. The maximum walltime on the ```scholar``` queue is 4 hours. + +## Long Queue + +If your job requires more than 4 hours to complete, you can submit it to the ```long``` queue. The maximum walltime is 3 days. There are only 5 nodes in this queue, so you may have to wait for some time to get access to a node. + +## GPU Queue + +If your job needs access to an Nvidia GPU accelerator, then use the ```gpu``` queue. The maximum walltime is 4 hours. + +## Debug Queue + +The debug queue allows you to quickly start small, short, interactive jobs in order to debug code, test programs, or test configurations. You are limited to one running job at a time in the queue, and you may run up to two compute nodes for 30 minutes. The expectation is that debug jobs should start within a couple of minutes, assuming all of its dedicated nodes are not taken by others. + +## List of Queues + +To see a list of all queues on Scholar that you may submit to, use the ```slist``` command. + +This lists each queue you can submit to, the number of nodes allocated to the queue, how many are available to run jobs, and the maximum walltime you may request. Options to the command will give more detailed information. This command can be used to get a general idea of how busy an individual queue is and how long you may have to wait for your job to start. + +[**Back to the Running Jobs section**](index.md) diff --git a/docs/userguides/scholar/run_jobs/r_example.md b/docs/userguides/scholar/run_jobs/r_example.md new file mode 100644 index 00000000..f418948f --- /dev/null +++ b/docs/userguides/scholar/run_jobs/r_example.md @@ -0,0 +1,14 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +--8<-- "docs/snippets/apps/r.md" + +[**Back to the Running Jobs section**](index.md) \ No newline at end of file diff --git a/docs/userguides/scholar/run_jobs/serial_jobs.md b/docs/userguides/scholar/run_jobs/serial_jobs.md new file mode 100644 index 00000000..baca1281 --- /dev/null +++ b/docs/userguides/scholar/run_jobs/serial_jobs.md @@ -0,0 +1,40 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +This shows how to submit one of the serial programs compiled in the section [Compiling Serial Programs](../compile/compile_serial.md). + +Create a job submission file: + +```bash +#!/bin/bash +# FILENAME: serial_hello.sub + +./serial_hello +``` + +Submit the job: + +```bash +sbatch --nodes=1 --ntasks=1 --time=00:01:00 serial_hello.sub +``` + +After the job completes, view results in the output file: + +```bash +cat slurm-myjobid.out + +Runhost:scholar-a009.rcac.purdue.edu +hello, world +``` + +If the job failed to run, then view error messages in the file ```slurm-myjobid.out```. + +[**Back to the Example Jobs section**](generic_slurm_jobs.md) diff --git a/docs/userguides/scholar/run_jobs/simple_job.md b/docs/userguides/scholar/run_jobs/simple_job.md new file mode 100644 index 00000000..daa26691 --- /dev/null +++ b/docs/userguides/scholar/run_jobs/simple_job.md @@ -0,0 +1,50 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +Every SLURM job consists of a job submission file. A job submission file contains a list of commands that run your program and a set of resource (nodes, walltime, queue) requests. The resource requests can appear in the job submission file or can be specified at submit-time as shown below. + +This simple example submits the job submission file ```hello.sub``` to the cpu queue on Gautschi and requests a single node: + +```bash +#!/bin/bash +# FILENAME: hello.sub + +# Show this ran on a compute node by running the hostname command. +hostname + +echo "Hello World" + +sbatch -A scholar --nodes=1 --ntasks=1 --cpus-per-task=1 --time=00:01:00 hello.sub +Submitted batch job 3521 +``` + +For a real job you would replace ```echo "Hello World"``` with a command, or sequence of commands, that run your program. + +After your job finishes running, the ```ls``` command will show a new file in your directory, the ```.out``` file: + +```bash +ls -l +hello.sub +slurm-3521.out +``` + +The file ```slurm-3521.out``` contains the output and errors your program would have written to the screen if you had typed its commands at a command prompt: + +```bash +cat slurm-3521.out + +scholar-a001.rcac.purdue.edu +Hello World +``` + +You should see the hostname of the compute node your job was executed on. Following should be the "Hello World" statement. + +[**Back to the Example Jobs section**](generic_slurm_jobs.md) diff --git a/docs/userguides/scholar/run_jobs/submit_script.md b/docs/userguides/scholar/run_jobs/submit_script.md new file mode 100644 index 00000000..be66d82d --- /dev/null +++ b/docs/userguides/scholar/run_jobs/submit_script.md @@ -0,0 +1,73 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +# Submitting the script as a job + +Once you have a [job submission file](creating_the_submission_script.md), you may submit this script to SLURM using the ```sbatch``` command. SLURM will find, or wait for, available resources matching your request and run your job there. + +To submit your job to one compute node: + +```bash +$ sbatch --nodes=1 myjobsubmissionfile +``` + +Slurm uses the word 'Account' and the option '-A' to specify different batch queues. To submit your job to a specific queue: + +```bash +$ sbatch --nodes=1 -A scholar myjobsubmissionfile +``` + +By default, each job receives 30 minutes of wall time, or clock time. If you know that your job will not need more than a certain amount of time to run, request less than the maximum wall time, as this may allow your job to run sooner. To request the 1 hour and 30 minutes of wall time: + +```bash +$ sbatch -t 1:30:00 --nodes=1 -A scholar myjobsubmissionfile +``` + +The ```--nodes``` value indicates how many compute nodes you would like for your job. + +Each compute node in Scholar has 20 processor cores. + +In some cases, you may want to request multiple nodes. To utilize multiple nodes, you will need to have a program or code that is specifically programmed to use multiple nodes such as with MPI. Simply requesting more nodes will not make your work go faster. Your code must support this ability. + +To request 2 compute nodes: + +```bash +$ sbatch --nodes=2 myjobsubmissionfile +``` + +By default, jobs on Scholar will share nodes with other jobs. + +To submit a job using 1 compute node with 4 tasks, each using the default 1 core and 1 GPU per node: + +```bash +$ sbatch --nodes=1 --ntasks=4 --gpus-per-node=1 myjobsubmissionfile +``` + +If more convenient, you may also specify any command line options to ```sbatch``` from within your job submission file, using a special form of comment: + +```bash +#!/bin/sh -l +# FILENAME: myjobsubmissionfile + +#SBATCH -A myqueuename +#SBATCH --nodes=1 +#SBATCH --time=1:30:00 +#SBATCH --job-name myjobname + +# Print the hostname of the compute node on which this job is running. +/bin/hostname +``` + +If an option is present in both your job submission file and on the command line, the option on the command line will take precedence. + +After you submit your job with ```SBATCH```, it may wait in queue for minutes, hours, or even weeks. How long it takes for a job to start depends on the specific queue, the resources and time requested, and other jobs already waiting in that queue requested as well. It is impossible to say for sure when any given job will start. For best results, request no more resources than your job requires. + +[**Back to the Running Jobs section**](index.md) diff --git a/docs/userguides/scholar/run_jobs/usage_monitoring.md b/docs/userguides/scholar/run_jobs/usage_monitoring.md new file mode 100644 index 00000000..66e25bfc --- /dev/null +++ b/docs/userguides/scholar/run_jobs/usage_monitoring.md @@ -0,0 +1,90 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +# Collecting System Resource Utilization Data + +Knowing the precise resource utilization an application had during a job, such as CPU load or memory, can be incredibly useful. This is especially the case when the application isn't performing as expected. + +One approach is to run a program like ```htop``` during an interactive job and keep an eye on system resources. You can get precise time-series data from nodes associated with your job using [XDmod](https://xdmod.rcac.purdue.edu/) as well, online. But these methods don't gather telemetry in an automated fashion, nor do they give you control over the resolution or format of the data. + +As a matter of course, a robust implementation of some HPC workload would include resource utilization data as a diagnostic tool in the event of some failure. + +The ```monitor``` utility is a simple command line system resource monitoring tool for gathering such telemetry and is available as a module. + +```bash +module load monitor +``` + +Complete documentation is available online at [resource-monitor.readthedocs.io](https://resource-monitor.readthedocs.io). A full manual page is also available for reference, ```man monitor```. + +In the context of a SLURM job you will need to put this monitoring task in the background to allow the rest of your job script to proceed. Be sure to interrupt these tasks at the end of your job. + +```bash +#!/bin/bash +# FILENAME: monitored_job.sh + + module load monitor + +# track per-code CPU load +monitor cpu percent --all-cores >cpu-percent.log & +CPU_PID=$! + +# track memory usage +monitor cpu memory >cpu-memory.log & +MEM_PID=$! + +# your code here + +# shut down the resource monitors +kill -s INT $CPU_PID $MEM_PID +``` + +A particularly elegant solution would be to include such tools in your prologue script and have the tear down in your epilogue script. + +For large distributed jobs spread across multiple nodes, ```mpiexec``` can be used to gather telemetry from all nodes in the job. The hostname is included in each line of output so that data can be grouped as such. A concise way of constructing the needed list of hostnames in SLURM is to simply use ```srun hostname | sort -u```. + +```bash +#!/bin/bash +# FILENAME: monitored_job.sh + +module load monitor + +# track all CPUs (one monitor per host) +mpiexec -machinefile <(srun hostname | sort -u) \ + monitor cpu percent --all-cores >cpu-percent.log & +CPU_PID=$! + +# track memory on all hosts (one monitor per host) +mpiexec -machinefile <(srun hostname | sort -u) \ + monitor cpu memory >cpu-memory.log & +MEM_PID=$! + +# your code here + +# shut down the resource monitors +kill -s INT $CPU_PID $MEM_PID +``` + +To get resource data in a more readily computable format, the ```monitor``` program can be told to output in CSV format with the ```--csv``` flag. + +```bash +monitor cpu memory --csv >cpu-memory.csv +``` + +For a distributed job you will need to suppress the header lines otherwise one will be created by each host. + +```bash +monitor cpu memory --csv | head -1 >cpu-memory.csv +mpiexec -machinefile <(srun hostname | sort -u) \ + monitor cpu memory --csv --no-header >>cpu-memory.csv +``` + +[**Back to the Running Jobs section**](index.md) diff --git a/docs/userguides/scholar/software.md b/docs/userguides/scholar/software.md new file mode 100644 index 00000000..7e5a19f0 --- /dev/null +++ b/docs/userguides/scholar/software.md @@ -0,0 +1,10 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- \ No newline at end of file diff --git a/docs/userguides/scholar/storage.md b/docs/userguides/scholar/storage.md new file mode 100644 index 00000000..7e5a19f0 --- /dev/null +++ b/docs/userguides/scholar/storage.md @@ -0,0 +1,10 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- \ No newline at end of file From f7548be37389367fe87f4251df3ea881d8e0e706 Mon Sep 17 00:00:00 2001 From: joshremender Date: Wed, 20 May 2026 13:11:00 -0400 Subject: [PATCH 02/11] migrated software.md page --- docs/userguides/scholar/software.md | 52 ++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/docs/userguides/scholar/software.md b/docs/userguides/scholar/software.md index 7e5a19f0..43b57097 100644 --- a/docs/userguides/scholar/software.md +++ b/docs/userguides/scholar/software.md @@ -7,4 +7,54 @@ resource: scholar host: scholar.rcac.purdue.edu search: boost: 2 ---- \ No newline at end of file +--- + +# Software on Scholar + +## Software Catalog + +A comprehensive list of centrally installed software applications can be found here: + +[Software Catalog](../../software/app_catalog.md) + +## Running the Apps +### Find available apps in the terminal +In addition to searching the software catalog for available applications, one can generate a list via the terminal: + +``` bash +$ module avail +---------------------- Core Applications --------------------- + amduprof/5.1.701 hypershell/2.5.2 ngc/default + anaconda/2024.10-py312 hypershell/2.6.5 oclfpga/2024.1.0 + anaconda/2025.06-py313 (D) hypershell/2.7.0 (D) openblas/0.3.27 +[MORE...] +``` +### View module prequisites and license information +After finding the module that you want to load, use 'module spider' to find any prerequisites or license information, if applicable: + +``` bash +$ module spider hypershell + +------------------------------------------------------------- + hypershell: +------------------------------------------------------------- + Description: + A cross-platform, high-throughput computing utility for processing shell commands over a + distributed, asynchronous queue. + + Versions: + hypershell/2.5.2 + hypershell/2.6.5 + hypershell/2.7.0 + + +``` +### Load the module +Use the command specified in the 'module spider' output to load your software module: + +``` bash +module load hypershell/2.7.0 +``` + +### Running GUI versions of apps +If the app you want to use has a GUI, you can also login to {{ resource }} via Thinlinc. More information on this process can be found [here](accounts.md#thinlinc). From 3d1d2a5f2fbcc11e0ec35ceda2d771c3dd7f01aa Mon Sep 17 00:00:00 2001 From: joshremender Date: Wed, 20 May 2026 14:22:37 -0400 Subject: [PATCH 03/11] migrated scholar_ug storage section --- docs/userguides/scholar/storage.md | 34 +++++++++++++++++-- .../storage/archive_and_compression.md | 14 ++++++++ .../scholar/storage/environment_variables.md | 14 ++++++++ docs/userguides/scholar/storage/ftp_sftp.md | 14 ++++++++ docs/userguides/scholar/storage/globus.md | 14 ++++++++ .../scholar/storage/home_directory.md | 14 ++++++++ docs/userguides/scholar/storage/hsi.md | 14 ++++++++ docs/userguides/scholar/storage/htar.md | 14 ++++++++ .../scholar/storage/long_term_storage.md | 14 ++++++++ docs/userguides/scholar/storage/scp.md | 14 ++++++++ .../scholar/storage/scratch_space.md | 14 ++++++++ docs/userguides/scholar/storage/sharing.md | 14 ++++++++ .../scholar/storage/storage_quota.md | 14 ++++++++ .../scholar/storage/tmp_directory.md | 14 ++++++++ .../scholar/storage/windows_network_drive.md | 14 ++++++++ 15 files changed, 227 insertions(+), 3 deletions(-) create mode 100644 docs/userguides/scholar/storage/archive_and_compression.md create mode 100644 docs/userguides/scholar/storage/environment_variables.md create mode 100644 docs/userguides/scholar/storage/ftp_sftp.md create mode 100644 docs/userguides/scholar/storage/globus.md create mode 100644 docs/userguides/scholar/storage/home_directory.md create mode 100644 docs/userguides/scholar/storage/hsi.md create mode 100644 docs/userguides/scholar/storage/htar.md create mode 100644 docs/userguides/scholar/storage/long_term_storage.md create mode 100644 docs/userguides/scholar/storage/scp.md create mode 100644 docs/userguides/scholar/storage/scratch_space.md create mode 100644 docs/userguides/scholar/storage/sharing.md create mode 100644 docs/userguides/scholar/storage/storage_quota.md create mode 100644 docs/userguides/scholar/storage/tmp_directory.md create mode 100644 docs/userguides/scholar/storage/windows_network_drive.md diff --git a/docs/userguides/scholar/storage.md b/docs/userguides/scholar/storage.md index 7e5a19f0..5cee43fb 100644 --- a/docs/userguides/scholar/storage.md +++ b/docs/userguides/scholar/storage.md @@ -3,8 +3,36 @@ tags: - Scholar authors: - jin456 -resource: scholar -host: scholar.rcac.purdue.edu + - remender +resource: Scholar search: boost: 2 ---- \ No newline at end of file +--- + +# Storage Systems on Scholar + +## Storage Options + +File storage options on RCAC systems include long-term storage (home directories, depot, Fortress) and short-term storage (scratch directories, /tmp directory). Each option has different performance and intended uses, and some options vary from system to system as well. Daily snapshots of home directories are provided for a limited time for accidental deletion recovery. Scratch directories and temporary storage are not backed up and old files are regularly purged from scratch and /tmp directories. More details about each storage option appear below. + +- [Home Directory](storage/home_directory.md) +- [Scratch Space](storage/scratch_space.md) +- [/tmp Directory](storage/tmp_directory.md) +- [Long-Term Storage](storage/long_term_storage.md) + +### Other Storage Topics +- [Storage Quota / Limits](storage/storage_quota.md) +- [Storage Environment Variables](storage/environment_variables.md) +- [Archive and Compression](storage/archive_and_compression.md) +- [Sharing](storage/sharing.md) + +## File Transfer + +Scholar supports several methods for file transfer. Use the links below to learn more about these methods. + +- [Globus](storage/globus.md) +- [Windows Network Drive / SMB](storage/windows_network_drive.md) +- [SCP](storage/scp.md) +- [FTP / SFTP](storage/ftp_sftp.md) +- [HSI](storage/hsi.md) +- [HTAR](storage/htar.md) \ No newline at end of file diff --git a/docs/userguides/scholar/storage/archive_and_compression.md b/docs/userguides/scholar/storage/archive_and_compression.md new file mode 100644 index 00000000..bc89aa0d --- /dev/null +++ b/docs/userguides/scholar/storage/archive_and_compression.md @@ -0,0 +1,14 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +--8<-- "docs/snippets/archive_and_compression.md" + +[**Back to the Storage section**](../storage.md) diff --git a/docs/userguides/scholar/storage/environment_variables.md b/docs/userguides/scholar/storage/environment_variables.md new file mode 100644 index 00000000..8396ce53 --- /dev/null +++ b/docs/userguides/scholar/storage/environment_variables.md @@ -0,0 +1,14 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +--8<-- "docs/snippets/environment_variables.md" + +[**Back to the Storage section**](../storage.md) diff --git a/docs/userguides/scholar/storage/ftp_sftp.md b/docs/userguides/scholar/storage/ftp_sftp.md new file mode 100644 index 00000000..06939b94 --- /dev/null +++ b/docs/userguides/scholar/storage/ftp_sftp.md @@ -0,0 +1,14 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +--8<-- "docs/snippets/ftp_sftp.md" + +[**Back to the Storage section**](../storage.md) diff --git a/docs/userguides/scholar/storage/globus.md b/docs/userguides/scholar/storage/globus.md new file mode 100644 index 00000000..026721ab --- /dev/null +++ b/docs/userguides/scholar/storage/globus.md @@ -0,0 +1,14 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +--8<-- "docs/snippets/globus.md" + +[**Back to the Storage section**](../storage.md) diff --git a/docs/userguides/scholar/storage/home_directory.md b/docs/userguides/scholar/storage/home_directory.md new file mode 100644 index 00000000..b0e372c6 --- /dev/null +++ b/docs/userguides/scholar/storage/home_directory.md @@ -0,0 +1,14 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: Scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +--8<-- "docs/snippets/home_directory.md" + +[**Back to the Storage section**](../storage.md) diff --git a/docs/userguides/scholar/storage/hsi.md b/docs/userguides/scholar/storage/hsi.md new file mode 100644 index 00000000..92821d1b --- /dev/null +++ b/docs/userguides/scholar/storage/hsi.md @@ -0,0 +1,14 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +--8<-- "docs/snippets/hsi.md" + +[**Back to the Storage section**](../storage.md) diff --git a/docs/userguides/scholar/storage/htar.md b/docs/userguides/scholar/storage/htar.md new file mode 100644 index 00000000..0489a67e --- /dev/null +++ b/docs/userguides/scholar/storage/htar.md @@ -0,0 +1,14 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +--8<-- "docs/snippets/htar.md" + +[**Back to the Storage section**](../storage.md) diff --git a/docs/userguides/scholar/storage/long_term_storage.md b/docs/userguides/scholar/storage/long_term_storage.md new file mode 100644 index 00000000..4f08f089 --- /dev/null +++ b/docs/userguides/scholar/storage/long_term_storage.md @@ -0,0 +1,14 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +--8<-- "docs/snippets/long_term_storage.md" + +[**Back to the Storage section**](../storage.md) diff --git a/docs/userguides/scholar/storage/scp.md b/docs/userguides/scholar/storage/scp.md new file mode 100644 index 00000000..181ad8e4 --- /dev/null +++ b/docs/userguides/scholar/storage/scp.md @@ -0,0 +1,14 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +--8<-- "docs/snippets/scp.md" + +[**Back to the Storage section**](../storage.md) diff --git a/docs/userguides/scholar/storage/scratch_space.md b/docs/userguides/scholar/storage/scratch_space.md new file mode 100644 index 00000000..15e11b73 --- /dev/null +++ b/docs/userguides/scholar/storage/scratch_space.md @@ -0,0 +1,14 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +--8<-- "docs/snippets/scratch_space.md" + +[**Back to the Storage section**](../storage.md) diff --git a/docs/userguides/scholar/storage/sharing.md b/docs/userguides/scholar/storage/sharing.md new file mode 100644 index 00000000..58628626 --- /dev/null +++ b/docs/userguides/scholar/storage/sharing.md @@ -0,0 +1,14 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +--8<-- "docs/snippets/sharing.md" + +[**Back to the Storage section**](../storage.md) diff --git a/docs/userguides/scholar/storage/storage_quota.md b/docs/userguides/scholar/storage/storage_quota.md new file mode 100644 index 00000000..aa984328 --- /dev/null +++ b/docs/userguides/scholar/storage/storage_quota.md @@ -0,0 +1,14 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +--8<-- "docs/snippets/storage_quota.md" + +[**Back to the Storage section**](../storage.md) diff --git a/docs/userguides/scholar/storage/tmp_directory.md b/docs/userguides/scholar/storage/tmp_directory.md new file mode 100644 index 00000000..f039cb10 --- /dev/null +++ b/docs/userguides/scholar/storage/tmp_directory.md @@ -0,0 +1,14 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +--8<-- "docs/snippets/tmp_directory.md" + +[**Back to the Storage section**](../storage.md) diff --git a/docs/userguides/scholar/storage/windows_network_drive.md b/docs/userguides/scholar/storage/windows_network_drive.md new file mode 100644 index 00000000..80592ed3 --- /dev/null +++ b/docs/userguides/scholar/storage/windows_network_drive.md @@ -0,0 +1,14 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +--8<-- "docs/snippets/windows_network_drive.md" + +[**Back to the Storage section**](../storage.md) From bc64675e6a2b094a0474d61529cdf20b4beced46 Mon Sep 17 00:00:00 2001 From: joshremender Date: Wed, 20 May 2026 14:53:34 -0400 Subject: [PATCH 04/11] migrated gateway section --- docs/userguides/scholar/gateway.md | 4 +- .../scholar/gateway/cluster_tools.md | 20 ++++++ docs/userguides/scholar/gateway/files.md | 23 +++++++ .../scholar/gateway/interactive_apps.md | 2 + docs/userguides/scholar/gateway/jobs.md | 65 +++++++++++++++++++ 5 files changed, 112 insertions(+), 2 deletions(-) create mode 100644 docs/userguides/scholar/gateway/cluster_tools.md create mode 100644 docs/userguides/scholar/gateway/jobs.md diff --git a/docs/userguides/scholar/gateway.md b/docs/userguides/scholar/gateway.md index 69e4df62..73983b1b 100644 --- a/docs/userguides/scholar/gateway.md +++ b/docs/userguides/scholar/gateway.md @@ -27,5 +27,5 @@ There are a number of built-in apps in Gateway that can be accessed from the top - [Interactive Apps](gateway/interactive_apps.md) - [Files](gateway/files.md) -- [Jobs]() -- [Cluster Tools]() +- [Jobs](gateway/jobs.md) +- [Cluster Tools](gateway/cluster_tools.md) diff --git a/docs/userguides/scholar/gateway/cluster_tools.md b/docs/userguides/scholar/gateway/cluster_tools.md new file mode 100644 index 00000000..40fc5bf7 --- /dev/null +++ b/docs/userguides/scholar/gateway/cluster_tools.md @@ -0,0 +1,20 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +# Cluster Tools + +The Cluster Tools menu contains cluster utilities. At the moment, only a terminal app is provided. Additional apps may be developed and provided in the future. + +## Shell Access + +Launching the shell app will provide you with a web-based terminal session on the cluster front-end. This is equivalent to using a standalone SSH client to connect to ```{{ host }}``` where you are connected to one several front-ends. The normal acceptable [front-end use policy](https://www.rcac.purdue.edu/policies/frontenduse) applies to access through the web-app. X11 Forwarding is not supported. Use of one of the [interactive apps](interactive_apps.md) is recommended for graphical applications. + +[**Return to the Gateway / OnDemand section**](../gateway.md) diff --git a/docs/userguides/scholar/gateway/files.md b/docs/userguides/scholar/gateway/files.md index 1cde5ece..88660c61 100644 --- a/docs/userguides/scholar/gateway/files.md +++ b/docs/userguides/scholar/gateway/files.md @@ -9,3 +9,26 @@ search: boost: 2 --- +# Files + +The Files app will let you access your files in your [Home Directory](../storage/home_directory.md), [Scratch](../storage/scratch_space.md), and [Data Depot](https://www.rcac.purdue.edu/storage/depot) spaces. The app lets you manage create, manage, and delete files and directories from your web browser. Navigate by double clicking on folders in the file explorer or by using the file tree on the left. + +![file manager](../../../assets/images/userguides/files1.png) +
The browser-based file explorer. Navigate by double clicking on folders in the file explorer or by using the file tree on the left.
+ +On the top row, there are buttons to: + +- Go To: directly input a directory to navigate to +- Open in Terminal: launches the Shell app and navigates you to the current directory in the terminal +- New File: creates a new, empty file +- New Dir: creates a new, empty directory +- Upload: upload a file from your computer + +Note: File uploads from your browser are limited to 100 GB per file. Be mindful that uploads over a few gigabytes may be unreliable through your browser, especially from off-campus connections. For very large files or off-campus transfers alternative methods such as [Globus](../storage/globus.md) are highly recommended. + +The second row of buttons lets you perform typical file management operations. The Edit button will open files in a fully fledged browser based text editor - it features syntax highlighting and vim and Emacs key bindings. + +![Text Editor](../../../assets/images/userguides/files2.png) +
The browser-based text editor interface, shown here editing a Bash script, includes syntax highlighting, font-size adjustments, and various key bindings.
+ +[**Return to the Gateway / OnDemand section**](../gateway.md) diff --git a/docs/userguides/scholar/gateway/interactive_apps.md b/docs/userguides/scholar/gateway/interactive_apps.md index eb35fd4d..937c31e6 100644 --- a/docs/userguides/scholar/gateway/interactive_apps.md +++ b/docs/userguides/scholar/gateway/interactive_apps.md @@ -76,3 +76,5 @@ To launch a RStudio session on a compute node, select the RStudio app. From the After the interactive job is submitted you will be taken to your list of active interactive app sessions. You can monitor the status of the job from here until it starts, or if you enabled the email notification, watch your Purdue email for the notification the job has started. Once it is indicated the job has started you can connect to the desktop with the "Connect to RStudio Server" button. The session will be terminated after the wallclock hours you specified have elapsed or you terminate the session early with the "Delete" button from the list of sessions. Deleting the session when you are finished will free up queue resources for your lab mates and other users on the system. + +[**Back to the Gateway / OnDemand section**](../gateway.md) diff --git a/docs/userguides/scholar/gateway/jobs.md b/docs/userguides/scholar/gateway/jobs.md new file mode 100644 index 00000000..a676c145 --- /dev/null +++ b/docs/userguides/scholar/gateway/jobs.md @@ -0,0 +1,65 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +# Jobs + +There are two apps under the Jobs apps: Active Jobs and Job Composer. These are detailed below. + +## Active Jobs + +This shows you active SLURM jobs currently on the cluster. The default view will show you your current jobs, similar to ```squeue -u rices```. Using the button labeled "Your Jobs" in the upper right allows you to select different filters by queue (account). All accounts output by ```slist``` will appear for you here. Using the arrow on the left hand side will expand the full job details. + +![Active Jobs](../../../assets/images/userguides/jobs1.png) +
The table of active jobs shows useful information such as queue, status, cluster, and ID. It can be sorted by clicking the headers of each column or searched with the "Filter" box above it.
+ +## Job Composer + +The Job Composer app allows you to create and submit jobs to the cluster. You can select from pre-defined templates (most of these are taken from the User Guide examples) or you can create your own templates for frequently used workflows. + +## Creating Job From Existing Template + +Click "New Job" menu, then select "From Template": + +![Job Template](../../../assets/images/userguides/jobs2.png) +
When clicking the 'New Job' button a drop-down will show a few options. "From Template" is usually the second item in the list.
+ +Then select from one of the available templates. + +![Job Template](../../../assets/images/userguides/jobs3.png) +
Select one of the templates by clicking its row in the table of available templates.
+ +Click 'Create New Job' in second pane. + +![Job Template](../../../assets/images/userguides/jobs4.png) +
The "Create New Job" pane will show form options for "Job Name", "Cluster", and "Script Name" with the "Create New Job" button below.
+ +Your new job should be selected in your list of jobs. In the 'Submit Script' pane you can see the job script that was generated with an 'Open Editor' link to open the script in the built-in editor. Open the file in the editor and edit the script as necessary. By default the job will specify standby queue - this should be changed as appropriate, along with the node and walltime requests. + +![Job Template](../../../assets/images/userguides/jobs5.png) +
The "Submit Script" pane will show a preview of the contents of the script file and action buttons below.
+ +When you are finished with editing the job and are ready to submit, click the green 'Submit' button at the top of the job list. You can monitor progress from here or from the Active Jobs app. Once completed, you should see the output files appear: + +![Job Template](../../../assets/images/userguides/jobs6.png) +
The folder contents will be listed, showing the resulting output files from running the submitted script.
+ +Clicking on one of the output files will open it in the file editor for your viewing. + +## Creating New Template + +First, prepare a template directory containing a template submission script along with any input files. Then, to import the job into the Job Composer app, click the 'Create New Template' button. Fill in the directory containing your template job script and files in the first box. Give it an appropriate name and notes. + +![Create Template](../../../assets/images/userguides/jobs7.png) +
The "Create New Template" form has inputs for "Path", "Name", "Cluster", and "Notes". If "Path" is left blank, a default job script will be added to the new template.
+ +This template will now appear in your list of templates to choose from when composing jobs. You can now go create and submit a job from this new template. + +[**Return to the Gateway / OnDemand section**](../gateway.md) From 15a8c930266a6310db189610bbb0cda46b48d080 Mon Sep 17 00:00:00 2001 From: joshremender Date: Wed, 20 May 2026 15:04:33 -0400 Subject: [PATCH 05/11] migrated compile programs section --- docs/userguides/scholar/compile.md | 10 +++++++++- docs/userguides/scholar/compile/compile_gpu.md | 14 ++++++++++++++ docs/userguides/scholar/compile/compile_hybrid.md | 14 ++++++++++++++ docs/userguides/scholar/compile/compile_mpi.md | 14 ++++++++++++++ docs/userguides/scholar/compile/compile_openmp.md | 14 ++++++++++++++ docs/userguides/scholar/compile/compile_serial.md | 14 ++++++++++++++ 6 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 docs/userguides/scholar/compile/compile_hybrid.md diff --git a/docs/userguides/scholar/compile.md b/docs/userguides/scholar/compile.md index 7e5a19f0..470e0fb3 100644 --- a/docs/userguides/scholar/compile.md +++ b/docs/userguides/scholar/compile.md @@ -7,4 +7,12 @@ resource: scholar host: scholar.rcac.purdue.edu search: boost: 2 ---- \ No newline at end of file +--- + +# Compiling Source codes on Scholar + +- [Compiling GPU Programs](compile/compile_gpu.md) +- [Compiling Hybrid Programs](compile/compile_hybrid.md) +- [Compiling Serial Programs](compile/compile_serial.md) +- [Compiling MPI Programs](compile/compile_mpi.md) +- [Compiling OpenMP Programs](compile/compile_openmp.md) diff --git a/docs/userguides/scholar/compile/compile_gpu.md b/docs/userguides/scholar/compile/compile_gpu.md index e69de29b..83a7f0ae 100644 --- a/docs/userguides/scholar/compile/compile_gpu.md +++ b/docs/userguides/scholar/compile/compile_gpu.md @@ -0,0 +1,14 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +--8<-- "docs/snippets/compile_gpu.md" + +[**Back to the Compiling Programs section**](../compile.md) diff --git a/docs/userguides/scholar/compile/compile_hybrid.md b/docs/userguides/scholar/compile/compile_hybrid.md new file mode 100644 index 00000000..b34dace2 --- /dev/null +++ b/docs/userguides/scholar/compile/compile_hybrid.md @@ -0,0 +1,14 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +--8<-- "docs/snippets/compile_hybrid.md" + +[**Back to the Compiling Programs section**](../compile.md) diff --git a/docs/userguides/scholar/compile/compile_mpi.md b/docs/userguides/scholar/compile/compile_mpi.md index e69de29b..efc4fef2 100644 --- a/docs/userguides/scholar/compile/compile_mpi.md +++ b/docs/userguides/scholar/compile/compile_mpi.md @@ -0,0 +1,14 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +--8<-- "docs/snippets/compile_mpi.md" + +[**Back to the Compiling Programs section**](../compile.md) diff --git a/docs/userguides/scholar/compile/compile_openmp.md b/docs/userguides/scholar/compile/compile_openmp.md index e69de29b..88261453 100644 --- a/docs/userguides/scholar/compile/compile_openmp.md +++ b/docs/userguides/scholar/compile/compile_openmp.md @@ -0,0 +1,14 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +--8<-- "docs/snippets/compile_openmp.md" + +[**Back to the Compiling Programs section**](../compile.md) diff --git a/docs/userguides/scholar/compile/compile_serial.md b/docs/userguides/scholar/compile/compile_serial.md index e69de29b..c30a120e 100644 --- a/docs/userguides/scholar/compile/compile_serial.md +++ b/docs/userguides/scholar/compile/compile_serial.md @@ -0,0 +1,14 @@ +--- +tags: + - Scholar +authors: + - jin456 +resource: scholar +host: scholar.rcac.purdue.edu +search: + boost: 2 +--- + +--8<-- "docs/snippets/compile_serial.md" + +[**Back to the Compiling Programs section**](../compile.md) From 3e06d7f4fb521bc7dffbf5bf4997b5a779817497 Mon Sep 17 00:00:00 2001 From: joshremender Date: Thu, 21 May 2026 13:44:46 -0400 Subject: [PATCH 06/11] migrated faqs.md --- docs/userguides/scholar/faqs.md | 67 ++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/docs/userguides/scholar/faqs.md b/docs/userguides/scholar/faqs.md index 7e5a19f0..a42d4121 100644 --- a/docs/userguides/scholar/faqs.md +++ b/docs/userguides/scholar/faqs.md @@ -7,4 +7,69 @@ resource: scholar host: scholar.rcac.purdue.edu search: boost: 2 ---- \ No newline at end of file +--- + +# Frequently Asked Questions on Scholar + +Some common questions, errors, and problems are categorized below. You can also use the search box above to search the user guide for any issues you are seeing. + +## About Scholar + +### Can you remove me from the Scholar mailing list? +Your subscription to the Scholar mailing list is tied to your access on Scholar. The only way to remove you from the Scholar mailing list is to remove your Scholar access. + +### Do I need to do anything to my firewall to access Scholar? +No firewall changes are needed to access Scholar. However, to access data through Network Drives (i.e., CIFS, "Z: Drive"), you must be on a Purdue campus network or connected through [VPN](https://it.purdue.edu/services/vpn.php). + +### Does Scholar have the same home directory as other clusters? +The Scholar `home` directory and its contents are exclusive to Scholar cluster front-end hosts and compute nodes. This `home` directory is not available on other RCAC machines but Scholar. There is no automatic copying or synchronization between `home` directories. + +At your discretion you can manually copy all or parts of your main research computing home to Scholar using one of the [suggested transfer methods in this section](./storage.md). + +## Applications + +### How should I launch common GUI applications on Scholar? +Users who have access to **Scholar** can use **ThinLinc** to launch an interactive jobs. Refer to [this user guide section](./accounts.md/#thinlinc) to learn how to setup Thinlinc for Scholar. + +* In the upper left corner, the user can click on **Applications**, then **Cluster Software**, where multiple software options are listed with interactive SLURM jobs. + +
+ ![Thinlinc Application](../../assets/images/userguides/gautschi/thinlinc-application1.png) +
Thinlinc application menu
+
+ +* The **GUI launcher** starts with a window that prompts the user to select the desired version of the software to launch and guides them through the job submission process. + +
+ ![Thinlinc Application2](../../assets/images/userguides/gautschi/thinlinc-application2.png) +
Thinlinc application selector
+
+ +* The **GUI launcher** also makes it easy for users to view available accounts, the maximum wall times for each account, and the available computing resources with multiple help options at the bottom. + +
+ ![Thinlinc Partition](../../assets/images/userguides/gautschi/thinlinc-partition.png) +
Partition selection
+
+ +* After choosing the partition, the user is prompted to provide the computing resource they need for their job to run while adjusting the memory for them automatically. + +
+ ![Thinlinc Resource](../../assets/images/userguides/gautschi/thinlinc-resource_options.png) +
Resource options for your job
+
+ +* After requesting the resources the job will be submitted and waiting for slurm to allocate the computing resources. + +
+ ![Thinlinc Application](../../assets/images/userguides/gautschi/thinlinc-jobsubmitted.png) +
Interactive job has been submitted
+
+ +### Close Firefox / Firefox is already running but not responding + +--8<-- "docs/snippets/firefox_lock.md" + +### Jupyter: database is locked / can not load notebook format + +--8<-- "docs/snippets/jupyter_lock.md" \ No newline at end of file From 636bc1c2e2660f8968aec101b3cf8448636fcd59 Mon Sep 17 00:00:00 2001 From: joshremender Date: Fri, 22 May 2026 09:41:19 -0400 Subject: [PATCH 07/11] added myself to authors list on all pages --- docs/userguides/scholar/accounts.md | 1 + docs/userguides/scholar/compile.md | 1 + docs/userguides/scholar/compile/compile_gpu.md | 1 + docs/userguides/scholar/compile/compile_hybrid.md | 1 + docs/userguides/scholar/compile/compile_mpi.md | 1 + docs/userguides/scholar/compile/compile_openmp.md | 1 + docs/userguides/scholar/compile/compile_serial.md | 1 + docs/userguides/scholar/faqs.md | 1 + docs/userguides/scholar/gateway.md | 1 + docs/userguides/scholar/gateway/cluster_tools.md | 1 + docs/userguides/scholar/gateway/files.md | 1 + docs/userguides/scholar/gateway/interactive_apps.md | 1 + docs/userguides/scholar/gateway/jobs.md | 1 + docs/userguides/scholar/index.md | 5 +++-- docs/userguides/scholar/overview.md | 1 + docs/userguides/scholar/run_jobs/apptainer_example.md | 1 + docs/userguides/scholar/run_jobs/cancelling_job.md | 1 + docs/userguides/scholar/run_jobs/checking_output.md | 1 + .../scholar/run_jobs/creating_the_submission_script.md | 1 + docs/userguides/scholar/run_jobs/directives.md | 1 + docs/userguides/scholar/run_jobs/gpu.md | 1 + docs/userguides/scholar/run_jobs/holding_job.md | 1 + docs/userguides/scholar/run_jobs/index.md | 1 + docs/userguides/scholar/run_jobs/interactive_jobs.md | 1 + docs/userguides/scholar/run_jobs/job_dependencies.md | 1 + docs/userguides/scholar/run_jobs/monitoring_job.md | 1 + docs/userguides/scholar/run_jobs/monitoring_resources.md | 1 + docs/userguides/scholar/run_jobs/mpi.md | 1 + docs/userguides/scholar/run_jobs/multiple_node.md | 1 + docs/userguides/scholar/run_jobs/openmp.md | 1 + docs/userguides/scholar/run_jobs/python_example.md | 1 + docs/userguides/scholar/run_jobs/queues.md | 1 + docs/userguides/scholar/run_jobs/r_example.md | 1 + docs/userguides/scholar/run_jobs/serial_jobs.md | 1 + docs/userguides/scholar/run_jobs/simple_job.md | 1 + docs/userguides/scholar/run_jobs/submit_script.md | 1 + docs/userguides/scholar/run_jobs/usage_monitoring.md | 1 + docs/userguides/scholar/software.md | 1 + docs/userguides/scholar/storage/archive_and_compression.md | 1 + docs/userguides/scholar/storage/environment_variables.md | 1 + docs/userguides/scholar/storage/ftp_sftp.md | 1 + docs/userguides/scholar/storage/globus.md | 1 + docs/userguides/scholar/storage/home_directory.md | 1 + docs/userguides/scholar/storage/hsi.md | 1 + docs/userguides/scholar/storage/htar.md | 1 + docs/userguides/scholar/storage/long_term_storage.md | 1 + docs/userguides/scholar/storage/scp.md | 1 + docs/userguides/scholar/storage/scratch_space.md | 1 + docs/userguides/scholar/storage/sharing.md | 1 + docs/userguides/scholar/storage/storage_quota.md | 1 + docs/userguides/scholar/storage/tmp_directory.md | 1 + docs/userguides/scholar/storage/windows_network_drive.md | 1 + 52 files changed, 54 insertions(+), 2 deletions(-) diff --git a/docs/userguides/scholar/accounts.md b/docs/userguides/scholar/accounts.md index 65d38ce5..7168b209 100644 --- a/docs/userguides/scholar/accounts.md +++ b/docs/userguides/scholar/accounts.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/compile.md b/docs/userguides/scholar/compile.md index 470e0fb3..a3ededac 100644 --- a/docs/userguides/scholar/compile.md +++ b/docs/userguides/scholar/compile.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/compile/compile_gpu.md b/docs/userguides/scholar/compile/compile_gpu.md index 83a7f0ae..3937e17a 100644 --- a/docs/userguides/scholar/compile/compile_gpu.md +++ b/docs/userguides/scholar/compile/compile_gpu.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/compile/compile_hybrid.md b/docs/userguides/scholar/compile/compile_hybrid.md index b34dace2..a56bbea6 100644 --- a/docs/userguides/scholar/compile/compile_hybrid.md +++ b/docs/userguides/scholar/compile/compile_hybrid.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/compile/compile_mpi.md b/docs/userguides/scholar/compile/compile_mpi.md index efc4fef2..73edc1e9 100644 --- a/docs/userguides/scholar/compile/compile_mpi.md +++ b/docs/userguides/scholar/compile/compile_mpi.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/compile/compile_openmp.md b/docs/userguides/scholar/compile/compile_openmp.md index 88261453..54bbc051 100644 --- a/docs/userguides/scholar/compile/compile_openmp.md +++ b/docs/userguides/scholar/compile/compile_openmp.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/compile/compile_serial.md b/docs/userguides/scholar/compile/compile_serial.md index c30a120e..5cf923f2 100644 --- a/docs/userguides/scholar/compile/compile_serial.md +++ b/docs/userguides/scholar/compile/compile_serial.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/faqs.md b/docs/userguides/scholar/faqs.md index a42d4121..5ed6b374 100644 --- a/docs/userguides/scholar/faqs.md +++ b/docs/userguides/scholar/faqs.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/gateway.md b/docs/userguides/scholar/gateway.md index 73983b1b..1ddc53ce 100644 --- a/docs/userguides/scholar/gateway.md +++ b/docs/userguides/scholar/gateway.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/gateway/cluster_tools.md b/docs/userguides/scholar/gateway/cluster_tools.md index 40fc5bf7..7da5f250 100644 --- a/docs/userguides/scholar/gateway/cluster_tools.md +++ b/docs/userguides/scholar/gateway/cluster_tools.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/gateway/files.md b/docs/userguides/scholar/gateway/files.md index 88660c61..ee46cb51 100644 --- a/docs/userguides/scholar/gateway/files.md +++ b/docs/userguides/scholar/gateway/files.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/gateway/interactive_apps.md b/docs/userguides/scholar/gateway/interactive_apps.md index 937c31e6..4e6ac571 100644 --- a/docs/userguides/scholar/gateway/interactive_apps.md +++ b/docs/userguides/scholar/gateway/interactive_apps.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/gateway/jobs.md b/docs/userguides/scholar/gateway/jobs.md index a676c145..e018b0ed 100644 --- a/docs/userguides/scholar/gateway/jobs.md +++ b/docs/userguides/scholar/gateway/jobs.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/index.md b/docs/userguides/scholar/index.md index c1b73b97..165608f1 100644 --- a/docs/userguides/scholar/index.md +++ b/docs/userguides/scholar/index.md @@ -1,8 +1,9 @@ --- -# tags: -# - Scholar +tags: + - Scholar authors: - jin456 + - remender search: boost: 2 --- diff --git a/docs/userguides/scholar/overview.md b/docs/userguides/scholar/overview.md index 7c512f7e..c4f61503 100644 --- a/docs/userguides/scholar/overview.md +++ b/docs/userguides/scholar/overview.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender search: boost: 2 --- diff --git a/docs/userguides/scholar/run_jobs/apptainer_example.md b/docs/userguides/scholar/run_jobs/apptainer_example.md index b3f390f0..285d4c54 100644 --- a/docs/userguides/scholar/run_jobs/apptainer_example.md +++ b/docs/userguides/scholar/run_jobs/apptainer_example.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/run_jobs/cancelling_job.md b/docs/userguides/scholar/run_jobs/cancelling_job.md index 5ed816d1..658fa18e 100644 --- a/docs/userguides/scholar/run_jobs/cancelling_job.md +++ b/docs/userguides/scholar/run_jobs/cancelling_job.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/run_jobs/checking_output.md b/docs/userguides/scholar/run_jobs/checking_output.md index 9fc3d38a..768e022d 100644 --- a/docs/userguides/scholar/run_jobs/checking_output.md +++ b/docs/userguides/scholar/run_jobs/checking_output.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/run_jobs/creating_the_submission_script.md b/docs/userguides/scholar/run_jobs/creating_the_submission_script.md index 3c010479..e25441f1 100644 --- a/docs/userguides/scholar/run_jobs/creating_the_submission_script.md +++ b/docs/userguides/scholar/run_jobs/creating_the_submission_script.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/run_jobs/directives.md b/docs/userguides/scholar/run_jobs/directives.md index bd0bc69a..e6b8bbda 100644 --- a/docs/userguides/scholar/run_jobs/directives.md +++ b/docs/userguides/scholar/run_jobs/directives.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/run_jobs/gpu.md b/docs/userguides/scholar/run_jobs/gpu.md index 306d85f2..a1c4341f 100644 --- a/docs/userguides/scholar/run_jobs/gpu.md +++ b/docs/userguides/scholar/run_jobs/gpu.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/run_jobs/holding_job.md b/docs/userguides/scholar/run_jobs/holding_job.md index d309ea68..faadfcc0 100644 --- a/docs/userguides/scholar/run_jobs/holding_job.md +++ b/docs/userguides/scholar/run_jobs/holding_job.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/run_jobs/index.md b/docs/userguides/scholar/run_jobs/index.md index c5e1e963..1d60ced1 100644 --- a/docs/userguides/scholar/run_jobs/index.md +++ b/docs/userguides/scholar/run_jobs/index.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: Scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/run_jobs/interactive_jobs.md b/docs/userguides/scholar/run_jobs/interactive_jobs.md index b9b67498..f94a0799 100644 --- a/docs/userguides/scholar/run_jobs/interactive_jobs.md +++ b/docs/userguides/scholar/run_jobs/interactive_jobs.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/run_jobs/job_dependencies.md b/docs/userguides/scholar/run_jobs/job_dependencies.md index cc670e7e..16821bed 100644 --- a/docs/userguides/scholar/run_jobs/job_dependencies.md +++ b/docs/userguides/scholar/run_jobs/job_dependencies.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/run_jobs/monitoring_job.md b/docs/userguides/scholar/run_jobs/monitoring_job.md index c1edd8c1..d46e08f7 100644 --- a/docs/userguides/scholar/run_jobs/monitoring_job.md +++ b/docs/userguides/scholar/run_jobs/monitoring_job.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/run_jobs/monitoring_resources.md b/docs/userguides/scholar/run_jobs/monitoring_resources.md index f467f17d..cf77dc3c 100644 --- a/docs/userguides/scholar/run_jobs/monitoring_resources.md +++ b/docs/userguides/scholar/run_jobs/monitoring_resources.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/run_jobs/mpi.md b/docs/userguides/scholar/run_jobs/mpi.md index 8bee0253..b7b3de4a 100644 --- a/docs/userguides/scholar/run_jobs/mpi.md +++ b/docs/userguides/scholar/run_jobs/mpi.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/run_jobs/multiple_node.md b/docs/userguides/scholar/run_jobs/multiple_node.md index ae540e03..67bfbc05 100644 --- a/docs/userguides/scholar/run_jobs/multiple_node.md +++ b/docs/userguides/scholar/run_jobs/multiple_node.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/run_jobs/openmp.md b/docs/userguides/scholar/run_jobs/openmp.md index 8f43e4cf..bd19f71d 100644 --- a/docs/userguides/scholar/run_jobs/openmp.md +++ b/docs/userguides/scholar/run_jobs/openmp.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/run_jobs/python_example.md b/docs/userguides/scholar/run_jobs/python_example.md index 0baaee55..90e66b52 100644 --- a/docs/userguides/scholar/run_jobs/python_example.md +++ b/docs/userguides/scholar/run_jobs/python_example.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/run_jobs/queues.md b/docs/userguides/scholar/run_jobs/queues.md index 5f4e7d6b..14430ecc 100644 --- a/docs/userguides/scholar/run_jobs/queues.md +++ b/docs/userguides/scholar/run_jobs/queues.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/run_jobs/r_example.md b/docs/userguides/scholar/run_jobs/r_example.md index f418948f..7063acce 100644 --- a/docs/userguides/scholar/run_jobs/r_example.md +++ b/docs/userguides/scholar/run_jobs/r_example.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/run_jobs/serial_jobs.md b/docs/userguides/scholar/run_jobs/serial_jobs.md index baca1281..a82505d5 100644 --- a/docs/userguides/scholar/run_jobs/serial_jobs.md +++ b/docs/userguides/scholar/run_jobs/serial_jobs.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/run_jobs/simple_job.md b/docs/userguides/scholar/run_jobs/simple_job.md index daa26691..2565f4f3 100644 --- a/docs/userguides/scholar/run_jobs/simple_job.md +++ b/docs/userguides/scholar/run_jobs/simple_job.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/run_jobs/submit_script.md b/docs/userguides/scholar/run_jobs/submit_script.md index be66d82d..b05e5140 100644 --- a/docs/userguides/scholar/run_jobs/submit_script.md +++ b/docs/userguides/scholar/run_jobs/submit_script.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/run_jobs/usage_monitoring.md b/docs/userguides/scholar/run_jobs/usage_monitoring.md index 66e25bfc..3cc7f736 100644 --- a/docs/userguides/scholar/run_jobs/usage_monitoring.md +++ b/docs/userguides/scholar/run_jobs/usage_monitoring.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/software.md b/docs/userguides/scholar/software.md index 43b57097..ac306f2e 100644 --- a/docs/userguides/scholar/software.md +++ b/docs/userguides/scholar/software.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/storage/archive_and_compression.md b/docs/userguides/scholar/storage/archive_and_compression.md index bc89aa0d..9371de12 100644 --- a/docs/userguides/scholar/storage/archive_and_compression.md +++ b/docs/userguides/scholar/storage/archive_and_compression.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/storage/environment_variables.md b/docs/userguides/scholar/storage/environment_variables.md index 8396ce53..e87597d4 100644 --- a/docs/userguides/scholar/storage/environment_variables.md +++ b/docs/userguides/scholar/storage/environment_variables.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/storage/ftp_sftp.md b/docs/userguides/scholar/storage/ftp_sftp.md index 06939b94..fdef7152 100644 --- a/docs/userguides/scholar/storage/ftp_sftp.md +++ b/docs/userguides/scholar/storage/ftp_sftp.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/storage/globus.md b/docs/userguides/scholar/storage/globus.md index 026721ab..fb974178 100644 --- a/docs/userguides/scholar/storage/globus.md +++ b/docs/userguides/scholar/storage/globus.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/storage/home_directory.md b/docs/userguides/scholar/storage/home_directory.md index b0e372c6..80686b11 100644 --- a/docs/userguides/scholar/storage/home_directory.md +++ b/docs/userguides/scholar/storage/home_directory.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: Scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/storage/hsi.md b/docs/userguides/scholar/storage/hsi.md index 92821d1b..802c7c13 100644 --- a/docs/userguides/scholar/storage/hsi.md +++ b/docs/userguides/scholar/storage/hsi.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/storage/htar.md b/docs/userguides/scholar/storage/htar.md index 0489a67e..b95506e6 100644 --- a/docs/userguides/scholar/storage/htar.md +++ b/docs/userguides/scholar/storage/htar.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/storage/long_term_storage.md b/docs/userguides/scholar/storage/long_term_storage.md index 4f08f089..3ab9be90 100644 --- a/docs/userguides/scholar/storage/long_term_storage.md +++ b/docs/userguides/scholar/storage/long_term_storage.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/storage/scp.md b/docs/userguides/scholar/storage/scp.md index 181ad8e4..89d7bee0 100644 --- a/docs/userguides/scholar/storage/scp.md +++ b/docs/userguides/scholar/storage/scp.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/storage/scratch_space.md b/docs/userguides/scholar/storage/scratch_space.md index 15e11b73..51bf22b1 100644 --- a/docs/userguides/scholar/storage/scratch_space.md +++ b/docs/userguides/scholar/storage/scratch_space.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/storage/sharing.md b/docs/userguides/scholar/storage/sharing.md index 58628626..eb51a001 100644 --- a/docs/userguides/scholar/storage/sharing.md +++ b/docs/userguides/scholar/storage/sharing.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/storage/storage_quota.md b/docs/userguides/scholar/storage/storage_quota.md index aa984328..2ce2ef93 100644 --- a/docs/userguides/scholar/storage/storage_quota.md +++ b/docs/userguides/scholar/storage/storage_quota.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/storage/tmp_directory.md b/docs/userguides/scholar/storage/tmp_directory.md index f039cb10..fe6c8191 100644 --- a/docs/userguides/scholar/storage/tmp_directory.md +++ b/docs/userguides/scholar/storage/tmp_directory.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: diff --git a/docs/userguides/scholar/storage/windows_network_drive.md b/docs/userguides/scholar/storage/windows_network_drive.md index 80592ed3..b4624c80 100644 --- a/docs/userguides/scholar/storage/windows_network_drive.md +++ b/docs/userguides/scholar/storage/windows_network_drive.md @@ -3,6 +3,7 @@ tags: - Scholar authors: - jin456 + - remender resource: scholar host: scholar.rcac.purdue.edu search: From 3100c037c2561cd70fa5ea16dd6343a49c9b82eb Mon Sep 17 00:00:00 2001 From: joshremender Date: Fri, 22 May 2026 10:07:45 -0400 Subject: [PATCH 08/11] Added h1 headers --- docs/userguides/scholar/run_jobs/apptainer_example.md | 2 ++ docs/userguides/scholar/run_jobs/directives.md | 2 ++ docs/userguides/scholar/run_jobs/interactive_jobs.md | 2 +- docs/userguides/scholar/run_jobs/monitoring_resources.md | 4 +++- docs/userguides/scholar/run_jobs/serial_jobs.md | 2 ++ docs/userguides/scholar/run_jobs/simple_job.md | 2 ++ 6 files changed, 12 insertions(+), 2 deletions(-) diff --git a/docs/userguides/scholar/run_jobs/apptainer_example.md b/docs/userguides/scholar/run_jobs/apptainer_example.md index 285d4c54..962a1309 100644 --- a/docs/userguides/scholar/run_jobs/apptainer_example.md +++ b/docs/userguides/scholar/run_jobs/apptainer_example.md @@ -10,6 +10,8 @@ search: boost: 2 --- +# Apptainer + !!! note Note: Apptainer was formerly known as Singularity and is now a part of the [Linux Foundation](https://apptainer.org/news/community-announcement-20211130). When migrating from Singularity see the [user compatibility documentation](https://apptainer.org/docs/user/main/singularity_compatibility.html). diff --git a/docs/userguides/scholar/run_jobs/directives.md b/docs/userguides/scholar/run_jobs/directives.md index e6b8bbda..95152e01 100644 --- a/docs/userguides/scholar/run_jobs/directives.md +++ b/docs/userguides/scholar/run_jobs/directives.md @@ -10,6 +10,8 @@ search: boost: 2 --- +# Directives + So far these examples have shown submitting jobs with the resource requests on the ```sbatch``` command line such as: ```bash diff --git a/docs/userguides/scholar/run_jobs/interactive_jobs.md b/docs/userguides/scholar/run_jobs/interactive_jobs.md index f94a0799..bb36c58a 100644 --- a/docs/userguides/scholar/run_jobs/interactive_jobs.md +++ b/docs/userguides/scholar/run_jobs/interactive_jobs.md @@ -10,7 +10,7 @@ search: boost: 2 --- -# Running interactive jobs on Scholar +# Running Interactive Jobs on Scholar Interactive jobs are run on compute nodes, while giving you a shell to interact with. They give you the ability to type commands or use a graphical interface in the same way as if you were on a front-end login host. diff --git a/docs/userguides/scholar/run_jobs/monitoring_resources.md b/docs/userguides/scholar/run_jobs/monitoring_resources.md index cf77dc3c..835494c7 100644 --- a/docs/userguides/scholar/run_jobs/monitoring_resources.md +++ b/docs/userguides/scholar/run_jobs/monitoring_resources.md @@ -10,7 +10,9 @@ search: boost: 2 --- -### Collecting System Resource Utilization Data +# Monitoring Resources + +## Collecting System Resource Utilization Data Knowing the precise resource utilization an application had during a job, such as CPU load or memory, can be incredibly useful. This is especially the case when the application isn't performing as expected. diff --git a/docs/userguides/scholar/run_jobs/serial_jobs.md b/docs/userguides/scholar/run_jobs/serial_jobs.md index a82505d5..39bc9c14 100644 --- a/docs/userguides/scholar/run_jobs/serial_jobs.md +++ b/docs/userguides/scholar/run_jobs/serial_jobs.md @@ -10,6 +10,8 @@ search: boost: 2 --- +# Running Serial Jobs + This shows how to submit one of the serial programs compiled in the section [Compiling Serial Programs](../compile/compile_serial.md). Create a job submission file: diff --git a/docs/userguides/scholar/run_jobs/simple_job.md b/docs/userguides/scholar/run_jobs/simple_job.md index 2565f4f3..655bd113 100644 --- a/docs/userguides/scholar/run_jobs/simple_job.md +++ b/docs/userguides/scholar/run_jobs/simple_job.md @@ -10,6 +10,8 @@ search: boost: 2 --- +# Running Simple Jobs + Every SLURM job consists of a job submission file. A job submission file contains a list of commands that run your program and a set of resource (nodes, walltime, queue) requests. The resource requests can appear in the job submission file or can be specified at submit-time as shown below. This simple example submits the job submission file ```hello.sub``` to the cpu queue on Gautschi and requests a single node: From 075585b1c2b32242ee15eebb15a7b60aedfc35fa Mon Sep 17 00:00:00 2001 From: joshremender Date: Fri, 22 May 2026 10:50:18 -0400 Subject: [PATCH 09/11] changed static snippets to macro snippets --- docs/userguides/scholar/storage/environment_variables.md | 6 +++++- docs/userguides/scholar/storage/ftp_sftp.md | 6 +++++- docs/userguides/scholar/storage/globus.md | 4 +++- docs/userguides/scholar/storage/hsi.md | 6 +++++- docs/userguides/scholar/storage/htar.md | 6 +++++- docs/userguides/scholar/storage/scp.md | 6 +++++- docs/userguides/scholar/storage/scratch_space.md | 6 +++++- docs/userguides/scholar/storage/sharing.md | 4 +++- docs/userguides/scholar/storage/storage_quota.md | 4 +++- docs/userguides/scholar/storage/windows_network_drive.md | 4 +++- 10 files changed, 42 insertions(+), 10 deletions(-) diff --git a/docs/userguides/scholar/storage/environment_variables.md b/docs/userguides/scholar/storage/environment_variables.md index e87597d4..8b9aae77 100644 --- a/docs/userguides/scholar/storage/environment_variables.md +++ b/docs/userguides/scholar/storage/environment_variables.md @@ -10,6 +10,10 @@ search: boost: 2 --- ---8<-- "docs/snippets/environment_variables.md" +{% set resource = "scholar" %} + +# Storage Environment Variables + +{{ environment_variables(resource) }} [**Back to the Storage section**](../storage.md) diff --git a/docs/userguides/scholar/storage/ftp_sftp.md b/docs/userguides/scholar/storage/ftp_sftp.md index fdef7152..931742e4 100644 --- a/docs/userguides/scholar/storage/ftp_sftp.md +++ b/docs/userguides/scholar/storage/ftp_sftp.md @@ -10,6 +10,10 @@ search: boost: 2 --- ---8<-- "docs/snippets/ftp_sftp.md" +{% set resource = "scholar" %} + +# FTP / SFTP + +{{ ssh_keys_snippet(resource) }} [**Back to the Storage section**](../storage.md) diff --git a/docs/userguides/scholar/storage/globus.md b/docs/userguides/scholar/storage/globus.md index fb974178..cb07830b 100644 --- a/docs/userguides/scholar/storage/globus.md +++ b/docs/userguides/scholar/storage/globus.md @@ -10,6 +10,8 @@ search: boost: 2 --- ---8<-- "docs/snippets/globus.md" +{% set resource = "scholar" %} + +{{ globus_snippet(resource) }} [**Back to the Storage section**](../storage.md) diff --git a/docs/userguides/scholar/storage/hsi.md b/docs/userguides/scholar/storage/hsi.md index 802c7c13..fe8b2a8c 100644 --- a/docs/userguides/scholar/storage/hsi.md +++ b/docs/userguides/scholar/storage/hsi.md @@ -10,6 +10,10 @@ search: boost: 2 --- ---8<-- "docs/snippets/hsi.md" +{% set resource = "scholar" %} + +# HSI + +{{ hsi_snippet(resource) }} [**Back to the Storage section**](../storage.md) diff --git a/docs/userguides/scholar/storage/htar.md b/docs/userguides/scholar/storage/htar.md index b95506e6..abfc3029 100644 --- a/docs/userguides/scholar/storage/htar.md +++ b/docs/userguides/scholar/storage/htar.md @@ -10,6 +10,10 @@ search: boost: 2 --- ---8<-- "docs/snippets/htar.md" +{% set resource = "scholar" %} + +# HTAR + +{{ htar_snippet(resource) }} [**Back to the Storage section**](../storage.md) diff --git a/docs/userguides/scholar/storage/scp.md b/docs/userguides/scholar/storage/scp.md index 89d7bee0..af4e4aee 100644 --- a/docs/userguides/scholar/storage/scp.md +++ b/docs/userguides/scholar/storage/scp.md @@ -10,6 +10,10 @@ search: boost: 2 --- ---8<-- "docs/snippets/scp.md" +{% set resource = "scholar" %} + +# SCP + +{{ scp_snippet(resource) }} [**Back to the Storage section**](../storage.md) diff --git a/docs/userguides/scholar/storage/scratch_space.md b/docs/userguides/scholar/storage/scratch_space.md index 51bf22b1..8b0b3c6b 100644 --- a/docs/userguides/scholar/storage/scratch_space.md +++ b/docs/userguides/scholar/storage/scratch_space.md @@ -10,6 +10,10 @@ search: boost: 2 --- ---8<-- "docs/snippets/scratch_space.md" +{% set resource = "scholar" %} + +# Scratch Space + +{{ scratch_space(resource) }} [**Back to the Storage section**](../storage.md) diff --git a/docs/userguides/scholar/storage/sharing.md b/docs/userguides/scholar/storage/sharing.md index eb51a001..123b6c3f 100644 --- a/docs/userguides/scholar/storage/sharing.md +++ b/docs/userguides/scholar/storage/sharing.md @@ -10,6 +10,8 @@ search: boost: 2 --- ---8<-- "docs/snippets/sharing.md" +{% set resource = "scholar" %} + +{{ sharing_snippet(resource) }} [**Back to the Storage section**](../storage.md) diff --git a/docs/userguides/scholar/storage/storage_quota.md b/docs/userguides/scholar/storage/storage_quota.md index 2ce2ef93..3f3cf50c 100644 --- a/docs/userguides/scholar/storage/storage_quota.md +++ b/docs/userguides/scholar/storage/storage_quota.md @@ -10,6 +10,8 @@ search: boost: 2 --- ---8<-- "docs/snippets/storage_quota.md" +{% set resource = "scholar" %} + +{{ storage_quota(resource) }} [**Back to the Storage section**](../storage.md) diff --git a/docs/userguides/scholar/storage/windows_network_drive.md b/docs/userguides/scholar/storage/windows_network_drive.md index b4624c80..a80cd9b3 100644 --- a/docs/userguides/scholar/storage/windows_network_drive.md +++ b/docs/userguides/scholar/storage/windows_network_drive.md @@ -10,6 +10,8 @@ search: boost: 2 --- ---8<-- "docs/snippets/windows_network_drive.md" +{% set resource = "scholar" %} + +{{ windows_network_drive(resource) }} [**Back to the Storage section**](../storage.md) From 6d373e009ec1c65f5d444ac77cbbb8285d833fbf Mon Sep 17 00:00:00 2001 From: joshremender Date: Fri, 22 May 2026 10:57:53 -0400 Subject: [PATCH 10/11] oops, forgot to convert compile_gpu to a macro snippet --- docs/userguides/scholar/compile/compile_gpu.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/userguides/scholar/compile/compile_gpu.md b/docs/userguides/scholar/compile/compile_gpu.md index 3937e17a..6fce7c34 100644 --- a/docs/userguides/scholar/compile/compile_gpu.md +++ b/docs/userguides/scholar/compile/compile_gpu.md @@ -10,6 +10,8 @@ search: boost: 2 --- ---8<-- "docs/snippets/compile_gpu.md" +{% set resource = "scholar" %} + +{{ compile_gpu_snippet(resource) }} [**Back to the Compiling Programs section**](../compile.md) From a83311d68675f59c74531c2748fc3688b8f48f04 Mon Sep 17 00:00:00 2001 From: joshremender Date: Fri, 22 May 2026 11:13:43 -0400 Subject: [PATCH 11/11] added new cluster variable --- docs/userguides/scholar/run_jobs/index.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/userguides/scholar/run_jobs/index.md b/docs/userguides/scholar/run_jobs/index.md index 1d60ced1..b7916574 100644 --- a/docs/userguides/scholar/run_jobs/index.md +++ b/docs/userguides/scholar/run_jobs/index.md @@ -4,7 +4,8 @@ tags: authors: - jin456 - remender -resource: Scholar +resource: scholar +cluster: Scholar host: scholar.rcac.purdue.edu search: boost: 2 @@ -12,7 +13,7 @@ search: # Running Jobs -Jobs are submitted on {{ resource }} via the SLURM (Simple Linux Utility for Resource Management) scheduler, which is responsible for allocating resources and scheduling the start time of a job. You may use either the batch or interactive mode to run your jobs. The batch mode is ideal for finished programs, and the interactive mode is useful for debugging your job. +Jobs are submitted on {{ cluster }} via the SLURM (Simple Linux Utility for Resource Management) scheduler, which is responsible for allocating resources and scheduling the start time of a job. You may use either the batch or interactive mode to run your jobs. The batch mode is ideal for finished programs, and the interactive mode is useful for debugging your job. !!! important Do NOT run large, long, multi-threaded, parallel, or CPU-intensive jobs on a front-end login host. All users share the front-end hosts, and running anything but the smallest test job will negatively impact everyone's ability to use Gautschi. Always use SLURM to submit your work as a job.