We briefly outline the steps required to get started with using and/or developing BoSSS applications.
We briefly outline the steps required to get started with using and/or developing BoSSS applications.
**In any case**, the [installation](#installation) of the pre-compiled version of BoSSS should be the first step.
**In any case**, the [installation](#installation) of the pre-compiled version of BoSSS should be the first step.
Upon finishing this step, you can either
Upon finishing this step, you can either
use [BoSSSpad] to run pre-compiled applications as well as -- or --
use [BoSSSpad](BoSSSpad) to run pre-compiled applications as well as -- or --
you can start [working with the source code](Working-with-BoSSS-as-a-Developer.md).
you can start [working with the source code](Working-with-BoSSS-as-a-Developer).
## Installation
## Installation
The advantage of C#, resp. .NET is that _the executable is platform-independent_. This implies that an executable compiled on a Windows/Mac laptop can be copied to a Linux/Unix HPC system and executed there without re-compilation. As discussed in [Section 2.2](../Part-I-Getting-Started/2.-Core-concepts#22-c-net-and-mono), this obviously requires some _middleware_ and some libraries to be present on the target computer. In the following, we will thus summarize some best practices for the installation of the [pre-compiled BoSSS binaries](https://github.com/FDYdarmstadt/BoSSS/releases) on different operating systems.
The advantage of C#, resp. .NET is that _the executable is platform-independent_.
This implies e.g. that an executable compiled on a Windows/Mac laptop
can be copied to a Linux/Unix HPC system and executed there without re-compilation.
As discussed in the [Core Concepts](Core-concepts#c-Sharp,-.net-and-mono),
this obviously requires some _middleware_ and some libraries to be present on the target computer. In the following, we will thus summarize some best practices for the installation of the [pre-compiled BoSSS binaries](https://github.com/FDYdarmstadt/BoSSS/releases) on different operating systems.
...
@@ -54,7 +58,7 @@ Since Mac OS X is a Unix system, most things should work similar to Linux.
...
@@ -54,7 +58,7 @@ Since Mac OS X is a Unix system, most things should work similar to Linux.
There has been, however, no interest so far for running BoSSS on Apple Computers,
There has been, however, no interest so far for running BoSSS on Apple Computers,
therefore we do not provide official guidlines.
therefore we do not provide official guidlines.
The first step would be to compile the Native Libraries (https://github.com/FDYdarmstadt/BoSSS-native, https://git.rwth-aachen.de/kummer/BoSSS-native).
The first step would be to compile the [Native Libraries](#notes-on-third-party-libraries).
For this, we reccomend that users should try either Mac Ports (https://www.macports.org/) or Homebrew (https://brew.sh/) to have a system which close to Linux (i.e. has `gcc`, `gfortran`, etc.). Using only Mac OS tools might be even harder.
For this, we reccomend that users should try either Mac Ports (https://www.macports.org/) or Homebrew (https://brew.sh/) to have a system which close to Linux (i.e. has `gcc`, `gfortran`, etc.). Using only Mac OS tools might be even harder.
After you have compiled the library, you can proceed analogously to the procedure under Linux.
After you have compiled the library, you can proceed analogously to the procedure under Linux.
...
@@ -88,7 +92,7 @@ Of course, you can compile the third-party libraries yourself,
...
@@ -88,7 +92,7 @@ Of course, you can compile the third-party libraries yourself,
e.g. to replace the Intel MKL by some other BLAS/LAPACK distribution.
e.g. to replace the Intel MKL by some other BLAS/LAPACK distribution.
But be aware that it is a tedious process!
But be aware that it is a tedious process!
The source of those native libraries which are open source can be found at
The source of those native libraries which are open source can be found at
If you want to use other versions of certain libraries from their original maintainers, be aware that sometimes the API of those might change, which usually yields to a segmentation fault.
If you want to use other versions of certain libraries from their original maintainers, be aware that sometimes the API of those might change, which usually yields to a segmentation fault.