-
David Hrbáč authoredDavid Hrbáč authored
csc.md 2.19 KiB
CSharp
C# is available on the cluster.
$ ml av mono
-------------------- /apps/modules/lang ---------------
Mono/5.0.0.100
!!! note
Use the command ml av mono
to get up-to-date versions of the modules.
Activate C# by loading the Mono module:
$ ml Mono
Examples
Hello World
Copy this code to new file hello.cs:
using System;
class HelloWorld {
static void Main() {
Console.WriteLine("Hello world!!!");
}
}
Compile the program and make Windows executable.
$ mcs -out:hello.exe hello.cs
Now run the program:
$ mono hello.exe
Hello world!!!
Interactive Console
Type:
$ csharp
Mono C# Shell, type "help;" for help
Enter statements below.
csharp>
Now you are in interactive mode. You can try following example.
csharp> using System;
csharp> int a = 5;
csharp> double b = 1.5;
csharp> Console.WriteLine("{0}*{1} is equal to {2}", a,b,a*b);
5*1.5 is equal to 7.5
csharp> a == b
false
Show all files modified in last 5 days:
csharp> using System.IO;
csharp> from f in Directory.GetFiles ("mydirectory")
> let fi = new FileInfo (f)
> where fi.LastWriteTime > DateTime.Now-TimeSpan.FromDays(5) select f;
{ "mydirectory/mynewfile.cs", "mydirectory/script.sh" }
MPI.NET
MPI is available for mono.
using System;
using MPI;
class MPIHello
{
static void Main(string[] args)
{
using (new MPI.Environment(ref args))
{
Console.WriteLine("Greetings from node {0} of {1} running on {2}",
Communicator.world.Rank, Communicator.world.Size,
MPI.Environment.ProcessorName);
}
}
}
Compile and run the program on Anselm:
$ qsub -I -A DD-13-5 -q qexp -l select=2:ncpus=16,walltime=00:30:00
$ ml mpi.net
$ mcs -out:csc.exe -reference:/apps/tools/mpi.net/1.0.0-mono-3.12.1/lib/MPI.dll csc.cs
$ mpirun -n 4 mono csc.exe
Greetings from node 2 of 4 running on cn204
Greetings from node 0 of 4 running on cn204
Greetings from node 3 of 4 running on cn199
Greetings from node 1 of 4 running on cn199
For more informations look at Mono documentation page.