1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- ///////////////////////////////////////////////////////////////////////////////////////
- /// \file parallel.h
- /// \brief Functionality for parallel computation
- ///
- /// Currently a layer over MPI with functionality LPJ-GUESS might need,
- /// but could be implemented as a layer over something else in future.
- ///
- /// The fact that MPI might not be available on the system where LPJ-GUESS
- /// was compiled is hidden by this module by simply pretending to be a
- /// "parallel" run with just one process.
- ///
- /// \author Joe Siltberg
- /// $Date: 2018-02-02 18:01:35 +0100 (ven, 02 fév 2018) $
- ///
- ///////////////////////////////////////////////////////////////////////////////////////
- #ifndef LPJ_GUESS_PARALLEL_H
- #define LPJ_GUESS_PARALLEL_H
- namespace GuessParallel {
- /// Initializes the module
- /** For instance by initializing underlying communications library.
- *
- * \param argc Passed along from main() to underlying communications library
- * \param argv Passed along from main() to underlying communications library
- */
- void init(int& argc, char**& argv);
- /// The process id of this process in the parallel run
- /** Returns zero when no MPI library is available/used. */
- int get_rank();
- /// The LOCAL process id of this process in the parallel run
- /** Returns zero when no MPI library is available/used. */
- int get_rank_specific(int lc);
- /// The number of LOCAL (i.e. LPJ-GUESS) processes involved in the parallel run
- /** Returns 1 when no MPI library is available/used. */
- int get_num_processes();
- /// The number of GLOBAL processes involved in the parallel run
- /** Returns 1 when no MPI library is available/used. */
- int get_num_global_processes();
- int get_num_local_processes(int lc);
- }
- #endif // LPJ_GUESS_PARALLEL_H
|