BUNDESANSTALT FÜR WASSERBAU Karlsruhe • Hamburg • Ilmenau
BAW - DH / 10.04.23 Folie-Nr. 1
Peter Schade, [email protected]
OpenMI Goes Linux
OpenMI 2.0 Talk
at the BAW in Hamburg 8 th of September 2009
BUNDESANSTALT FÜR WASSERBAU Karlsruhe • Hamburg • Ilmenau
BAW - DH / 10.04.23 Folie-Nr. 2
Overview “OpenMI goes Linux“
1. Status Quo of BAW Hardware, OpenMI versions and Mono
2. Portation of the OpenMI from Windows to Linux by Mono
3. Perspectives
BUNDESANSTALT FÜR WASSERBAU Karlsruhe • Hamburg • Ilmenau
BAW - DH / 10.04.23 Folie-Nr. 3
1. Status Quo of BAW hardware,
OpenMI versions and Mono
BUNDESANSTALT FÜR WASSERBAU Karlsruhe • Hamburg • Ilmenau
BAW - DH / 10.04.23 Folie-Nr. 4
1. Status Quo BAW Model HardwareComputer CPU OS Models
Dell PCs
Intel QuadCore
WindowsXP
OpenMI-Delft3D, SWAN
Linux
Workstations
2 Intel
QuadCore
64 bit, SUSE
Linux 11
UnTRIM, SediMorph, Telemac, k_model, …
SGI Altix 3700
Intel Itanium
64 bit, SUSE
Linux 9
UnTRIM, SediMorph, Telemac,
k_model, …
SGI AltixXE 1300
66 * 2 Intel QuadCore
64 bit, SUSE
Linux 11
UnTRIM, SediMorph, Telemac,
k_model, …
Majority of models at BAW runs on Linux systems
OpenMI-Linux test system
BUNDESANSTALT FÜR WASSERBAU Karlsruhe • Hamburg • Ilmenau
BAW - DH / 10.04.23 Folie-Nr. 5
1. OpenMI 1.4 C# and Java Version
Feature C# for MS .NET Java C# for Mono
Platforms Windows Linux,Solaris, Mac OS X,Windows
?
GUI + - ?
Status professional professional ?
Examples of OpenMI compliant
models
Delft3D, InfoWorks, ISIS,
Mike11, Mike SHE, RiSH, RMM,
Sobek, SWIS, Waqua, GEI,
ZOOMQ3D, ...
JGrass, Capri, SSIM,
Apes, MetaSwap
?
“personal“
code history
? ? ?? ?
BUNDESANSTALT FÜR WASSERBAU Karlsruhe • Hamburg • Ilmenau
BAW - DH / 10.04.23 Folie-Nr. 6
1. What is Mono?It contains • the compiler gmcs• the IDE MonoDevelop• the Common Language Runtime (CLR, comparable with JavaRE)
BUNDESANSTALT FÜR WASSERBAU Karlsruhe • Hamburg • Ilmenau
BAW - DH / 10.04.23 Folie-Nr. 7
1. What is Mono?It contains • the compiler gmcs• the IDE MonoDevelop• the Common Language Runtime (compar. With JRE)
BUNDESANSTALT FÜR WASSERBAU Karlsruhe • Hamburg • Ilmenau
BAW - DH / 10.04.23 Folie-Nr. 8
1. What is Mono?part of the Linux distributions of • Fedora• SUSE• Ubuntu• …
It contains • the compiler gmcs• the IDE MonoDevelop• the Common Language Runtime (compar. With JRE)
BUNDESANSTALT FÜR WASSERBAU Karlsruhe • Hamburg • Ilmenau
BAW - DH / 10.04.23 Folie-Nr. 9
2. Portation of the OpenMI from Windows to Linux by Mono
BUNDESANSTALT FÜR WASSERBAU Karlsruhe • Hamburg • Ilmenau
BAW - DH / 10.04.23 Folie-Nr. 10
2. Portation of OpenMI Environment 1
OpenMI Standard
What has been ported to Mono C#?
See Portation Guidelines on the OpenMI Wiki: http://public.deltares.nl/display/OPENMI/How+to+port+the+OpenMI+from+Windows+to+Linux
C# models of theExamples area
SDK,the toolkit
Configuration Editor, the GUI
Annotations
• easy portation,• some MS dlls could even be interpreted on Mono Common Language Runtime
• some problems with namespaces, ressource files *.resx, graphic formats;• apart from filters all has been ported
BUNDESANSTALT FÜR WASSERBAU Karlsruhe • Hamburg • Ilmenau
BAW - DH / 10.04.23 Folie-Nr. 11
2. Portation of OpenMI Environment 2
Courtesy Rob Knapen from Alterra
• The dlls were compiled and successfully tested under SUSE SLED 11.
• Second test of the same dlls on the Mono CLR of Ubuntu 9.04:
Download of OpenMI environment from SourceForge http://openmi.svn.sourceforge.net/viewvc/openmi/branches/OpenMI-Version-1-Trunk/
BUNDESANSTALT FÜR WASSERBAU Karlsruhe • Hamburg • Ilmenau
BAW - DH / 10.04.23 Folie-Nr. 12
2. Portation of a LinkableComponent
... consisting of a Fortran Engine and a C# Wrapper
See Guidelines on the OpenMI Wikihttp://public.deltares.nl/display/OPENMI/How+to+generate+a+LinkableComponent+with+a+Fortran+engine+on+Linux
BUNDESANSTALT FÜR WASSERBAU Karlsruhe • Hamburg • Ilmenau
BAW - DH / 10.04.23 Folie-Nr. 13
2. Portation of a Fortran Engine …
• Intel compiler bug with dlls caused minor changes in the code
• updated code could be compiled on Windows as well as on Linux
• Linux and Windows compiler were both Intel compilers
• the generated shared library (dll) is planned to be re-used as a reader of BAW files for visualisation software Davit
… to Linux
BUNDESANSTALT FÜR WASSERBAU Karlsruhe • Hamburg • Ilmenau
BAW - DH / 10.04.23 Folie-Nr. 14
2. Portation of a C# Wrapper
• Most of the ported code runs on Windows as well.
• But a severe Mono bug with accessing Fortran strings -> workaround: Microsoft C# Wrapper and Mono C# Wrapper should differ in that point.
• The C# Wrapper does not work with parallel Fortran code for HPC; Mono compiler does not support parallel computing.
• MPI.NET is a commercial product which should enable parallel code for Mono.
• IDE MonoDevelop not as powerful and well documented as MS Visual Studio
• Recommendation: Develop in MS Visual Studio .NET and port the results.
… to Mono
BUNDESANSTALT FÜR WASSERBAU Karlsruhe • Hamburg • Ilmenau
BAW - DH / 10.04.23 Folie-Nr. 15
OpenMI Link
Reader ComponentGEIWrapper
Simple C# River Model
2. Test case: Reader and Model
Initial Data
Initial Data
Initial Data
Initial Data
Sources, Sinks
Free Surface
e.g. Waterlevel
Initial Data
Open Boundary
C# Model
the ported OpenMI has a research status
BUNDESANSTALT FÜR WASSERBAU Karlsruhe • Hamburg • Ilmenau
BAW - DH / 10.04.23 Folie-Nr. 16
2. Screenshot: Reader and Model
BUNDESANSTALT FÜR WASSERBAU Karlsruhe • Hamburg • Ilmenau
BAW - DH / 10.04.23 Folie-Nr. 17
3. Perspectives
BUNDESANSTALT FÜR WASSERBAU Karlsruhe • Hamburg • Ilmenau
BAW - DH / 10.04.23 Folie-Nr. 18
3. Perspectives for Mono
• sustainability: future of Mono as an open source projec
• Microsoft make C# patent promise to unblock Mono
• ongoing development of Mono• support of parallel Fortran?• Mono dlls are interpreted on several platforms with a Mono Common Language Runtime
BUNDESANSTALT FÜR WASSERBAU Karlsruhe • Hamburg • Ilmenau
BAW - DH / 10.04.23 Folie-Nr. 19
3. Perspectives for Linux OpenMI OpenMI environment runs stable at least on SUSE Linux
Component: guidelines for portation on OpenMI-Wiki
Fortran engine GEI: small changes
new possibilities to integrate GEI and GEIWrapper
Portation of C# Wrapper: few changes
Top Related