.NET

Overview

.NET is a runtime for the C# (c-sharp) language.

The Linux runtime is installed on the CSF as modules:

libs/dotnet/3.1                                        
libs/dotnet/6.0                                        
libs/dotnet/7.0                                        
libs/dotnet/8.0                                        
libs/dotnet/10.0

Microsoft .NET release history

Restrictions on use

.NET is free, open source, and is a .NET Foundation project. .NET is maintained by Microsoft and the community on GitHub in several repositories.

.NET source and binaries are licensed with the MIT license. Additional licenses apply on Windows.

Set up procedure

We now recommend loading modulefiles within your jobscript so that you have a full record of how the job was run. See the example jobscript below for how to do this. Alternatively, you may load modulefiles on the login node and let the job inherit these settings.

Load one of the modules:

module load libs/dotnet/10.0

If you don’t have a specific version requirement, use either the most recent, or pick the version that is comtemporary with the software you are using.

Running the application

Please do not run the login node. Jobs should be submitted to the compute nodes via batch.

Batch job submission

Create a batch submission script (which will load the modulefile in the jobscript), for example a serial (1 core) job:

#!/bin/bash --login
#SBATCH -p serial     # (or --partition=) Run on the nodes dedicated to 1-core jobs
#SBATCH -t 4-0        # Wallclock time limit. 4-0 is 4 days. Max permitted is 7-0.

# Start with a clean environment - modules are inherited from the login node by default.
module purge
module load libs/dotnet/10.0

dotnet EXECUTABLE-NAME

If your software is multicore capable:

#!/bin/bash --login
#SBATCH -p multicore  # (or --partition=) Run on the AMD 168-core nodes
#SBATCH -n 16         # (or --ntasks=) Number of cores to use.
#SBATCH -t 4-0        # Wallclock time limit. 4-0 is 4 days. Max permitted is 7-0.

# Start with a clean environment - modules are inherited from the login node by default.
module purge
module load libs/dotnet/10.0

# you may need to tell the application how many cores to use (-n is an example only)
dotnet EXECUTABLE-NAME -n CORES

Submit the jobscript using:

sbatch scriptname

where scriptname is the name of your jobscript.

Further info

Last modified on January 26, 2026 at 1:49 pm by Martin Wolstencroft