diff --git a/projects/README.rst b/projects/README.rst index 757661e6a2a0dd7a8c3195f17d34851458f0c5ff..2aaf176075b725486c5718ef8c10c1e8b4a20c97 100644 --- a/projects/README.rst +++ b/projects/README.rst @@ -11,6 +11,10 @@ regularly. TurTLE is a fairly generic solver, mostly implementing basic functionality that is meant to be used for specific purposes (but the specific functionality must be implemented for individual projects). + For example, numerical representations of scalar fields are + available, as well as the capability of computing arbitrary + expressions involving these scalar fields; however there is no + "apply Laplacean operator" functionality available. To this end, it helps to clearly and succinctly state the equations to be solved, as well as the quantities that need to be measured from @@ -34,20 +38,19 @@ regularly. desired result, but rather some postprocessing (in a Python script) will be necessary. - It is recommended to quickly write a C++ executable that outputs - essential information, with an accompanying Python script that - performs calculations not yet implemented in C++. - Subsequent performance checks will determine whether any of the - Python functionality should be redesigned or implemented directly in - C++ (in which case it may be possible, for e.g., to avoid some heavy I/O). - - However, a document should be maintained that parallels the initial + A document should be maintained that parallels the initial brief mathematical description. In this document, it should be clearly stated which mathematical - quantity is computed by which component. + quantity is computed by which component (i.e. which C++ class/file, + or which Python script etc). + Ideally this information is partially embedded in the source code + itself (as documentation). - Ideally this information is embedded in the source code itself (as - documentation). + Note the use of the word "maintained" in the above paragraph. + It is recommended to first write a combination of + C++/Python code that works correctly (and is documented as above). + To the extent that performance requirements lead to subsequent + modifications, the documentation should also be kept up to date. 3. **Test first**. @@ -70,3 +73,13 @@ regularly. to extrapolate data storage requirements to the production parameter regime, and prepare beforehand for archiving and/or other data transfers. + Notably, many HPC systems have limited scratch partition space + available, and implement automatic removal of files older than a few + weeks. + + In other words: (a) ensure that a location with enough free storage is + available, (b) organize periodic data transfers (if the production jobs + are expected to to overrun the available scratch partition space), + (c) confirm with supervisor that your solution respects data archiving + regulations. +