You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This project was created as part of the Tsunami course in the winter semester 2023/24 at FSU Jena.
6
-
The lectures content was implemented by `Luca-Philipp Grumbach <https://github.com/xLPMG>`_ and `Richard Hofmann <https://github.com/ZeyxRew>`_ as weekly homework / exam assignments.
5
+
The `tsunami lab <https://scalable.uni-jena.de/opt/tsunami/>`_ is a course taught at the `University of Jena <https://www.uni-jena.de/en/universityofjena>`_ as
6
+
the practical lab for the lecture on parallel computing.
7
+
The goal is to write a C++ tsunami `wave equation <https://en.wikipedia.org/wiki/Wave_equation>`_ `solver <https://www.clawpack.org/riemann_book/html/Index.html>`_, optimize and parallelize it and run tsunami simulations on an `HPC cluster <https://wiki.uni-jena.de/pages/viewpage.action?pageId=22453005>`_.
7
8
8
-
Further information is available from: https://scalable.uni-jena.de/opt/tsunami/
9
+
During the class, we received weekly assignments which make up the final grade. Our (`Luca-Philipp Grumbach <https://github.com/xLPMG>`_ and `Richard Hofmann <https://github.com/ZeyxRew>`_)
10
+
implementations of the given weekly tasks are what make up this repository - a fully functional 2D wave equation solver for Linux and MacOS.
9
11
10
12
The documentation can be found here: https://xlpmg.github.io/tsunami_lab/index.html
Copy file name to clipboardExpand all lines: docs/source/files/assignments/project.rst
+5-4Lines changed: 5 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,8 @@
5
5
In the project phase we decided to implement a user-friendly graphical user interface. The aim was to make the usage of our Tsunami solver
6
6
as easy and interactive as possible.
7
7
8
+
All authors contributed in equal parts.
9
+
8
10
*********************
9
11
Preface
10
12
*********************
@@ -76,7 +78,7 @@ In the last window, data files can be selected and then sent to the server. Rece
76
78
Server-side
77
79
*********************
78
80
79
-
The first thing we did was to modularize our main ``tsunami_lab`` program.
81
+
The first task we had to tackle was to modularize our main ``tsunami_lab`` program.
80
82
81
83
The original ``main.cpp`` had one main function that executed the whole program loop.
82
84
The code was moved to ``Simulator.cpp`` and we now have separate functions for the different parts of the program, such as ``prepareForCalculation()`` and ``runCalculation()``.
@@ -102,7 +104,7 @@ Linux
102
104
103
105
``getCPUUsage()`` reads from ``/proc/stat`` and calculates the CPU usage based on the values in that file.
104
106
It provides us with info for each core on how much time it spent in different states (user, system, idle, etc.).
105
-
The time is measures in jiffies, which are typically 1/100th of a second.
107
+
The time is measured in jiffies, which are typically 1/100th of a second.
106
108
The server reads this file every 10 milliseconds and calculates the CPU usage based on the difference between the current and the last read.
107
109
108
110
``getRAMUsage()`` makes use of the ``sysinfo.h`` linux header file. It would've been possible to read from ``/proc/meminfo`` however we would have needed to parse the file and collect the correct value ourselves.
@@ -217,5 +219,4 @@ Communicator API
217
219
Since all communication happens using text over TCP, we had to implement a structure that both server and client can adhere to
218
220
in order to guarantee correct communication. For this, we decided to send all data in JSON format and a ``Message`` struct.
219
221
220
-
221
-
.. note:: For further information, see :ref:`ns-lib`
222
+
.. note:: For further information, see :ref:`ns-lib`
0 commit comments