Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
simgrid.git
2 years agoAdd smpi/pedantic flag to avoiding reporting controversial errors that may or may...
Augustin Degomme [Mon, 14 Jun 2021 12:08:23 +0000 (14:08 +0200)]
Add smpi/pedantic flag to avoiding reporting controversial errors that may or may not be important.

2 years agoAdd option smpi/errors-are-fatal to allow users to bypass MPI errors returned by...
Augustin Degomme [Mon, 14 Jun 2021 12:07:41 +0000 (14:07 +0200)]
Add option smpi/errors-are-fatal to allow users to bypass MPI errors returned by SMPI.
This basically sets the default errhandler to MPI_ERRORS_RETURN if set to false.

2 years agoCleanup in .gitignore files; delete obsolete tesh file. [ci-skip]
Arnaud Giersch [Sun, 13 Jun 2021 19:48:26 +0000 (21:48 +0200)]
Cleanup in .gitignore files; delete obsolete tesh file. [ci-skip]

2 years ago[sonar] Replace redundant type with 'auto'.
Arnaud Giersch [Sun, 13 Jun 2021 13:45:25 +0000 (15:45 +0200)]
[sonar] Replace redundant type with 'auto'.

2 years agoRemove misleading comment: there is no simcall between the two assignments.
Arnaud Giersch [Sat, 12 Jun 2021 13:01:42 +0000 (15:01 +0200)]
Remove misleading comment: there is no simcall between the two assignments.

2 years agoAdd more optimizations for MC builds.
Arnaud Giersch [Sat, 12 Jun 2021 13:00:49 +0000 (15:00 +0200)]
Add more optimizations for MC builds.

2 years agoFactorize common code to assemble vector<LinkImpl*> and update latency.
Arnaud Giersch [Fri, 11 Jun 2021 11:52:17 +0000 (13:52 +0200)]
Factorize common code to assemble vector<LinkImpl*> and update latency.

2 years agoFix loop: iterator is invalid after insertion.
Arnaud Giersch [Fri, 11 Jun 2021 09:33:14 +0000 (11:33 +0200)]
Fix loop: iterator is invalid after insertion.

2 years agoUse 'std::vector' instead of a C-style array.
Arnaud Giersch [Fri, 11 Jun 2021 08:20:04 +0000 (10:20 +0200)]
Use 'std::vector' instead of a C-style array.

2 years agoFor sonar.
Arnaud Giersch [Fri, 11 Jun 2021 07:57:38 +0000 (09:57 +0200)]
For sonar.

2 years agoCosmetics: snake_case.
Arnaud Giersch [Thu, 10 Jun 2021 14:35:37 +0000 (16:35 +0200)]
Cosmetics: snake_case.

2 years agoUse existing helper function to create zones.
Arnaud Giersch [Thu, 10 Jun 2021 14:13:22 +0000 (16:13 +0200)]
Use existing helper function to create zones.

2 years agoUseless static function.
Arnaud Giersch [Thu, 10 Jun 2021 14:09:22 +0000 (16:09 +0200)]
Useless static function.

2 years agoReduce depth of nested statements (sonar).
Arnaud Giersch [Thu, 10 Jun 2021 09:23:06 +0000 (11:23 +0200)]
Reduce depth of nested statements (sonar).

2 years agoSuperfluous blank lines.
Arnaud Giersch [Thu, 10 Jun 2021 09:21:07 +0000 (11:21 +0200)]
Superfluous blank lines.

2 years agoRemove unused parameter.
Arnaud Giersch [Thu, 10 Jun 2021 08:36:32 +0000 (10:36 +0200)]
Remove unused parameter.

2 years agoMisc. Sonar smells.
Arnaud Giersch [Thu, 10 Jun 2021 08:23:37 +0000 (10:23 +0200)]
Misc. Sonar smells.

2 years agoUse empty() to check for container emptiness.
Arnaud Giersch [Thu, 10 Jun 2021 08:19:38 +0000 (10:19 +0200)]
Use empty() to check for container emptiness.

2 years agoUse xbt logs, not printf.
Arnaud Giersch [Thu, 10 Jun 2021 07:25:19 +0000 (09:25 +0200)]
Use xbt logs, not printf.

Update tesh files accordingly.

2 years agoMerge branch 'host-energy' into 'master'
Arnaud Giersch [Thu, 10 Jun 2021 09:25:20 +0000 (09:25 +0000)]
Merge branch 'host-energy' into 'master'

host energy: no direct W/J access of invalid data

See merge request simgrid/simgrid!65

2 years agohost energy: explicit 'return 0.0' when badly init
Millian Poquet [Thu, 10 Jun 2021 08:18:04 +0000 (10:18 +0200)]
host energy: explicit 'return 0.0' when badly init

2 years agohost energy: no direct W/J access of invalid data
Millian Poquet [Mon, 7 Jun 2021 15:59:50 +0000 (17:59 +0200)]
host energy: no direct W/J access of invalid data

When energy consumption data is missing about a host,
SimGrid assumes it consumes no energy (0 W).

This change does not modify this behavior.

It prevents direct user access to power/energy consumption of such hosts,
as this is likely a user bug:
- either forgot to parametrize the host energy consumption
- or requested the energy consumption of the wrong host

2 years agoFix a FIXME: use a dynamic table.
Arnaud Giersch [Wed, 9 Jun 2021 14:34:34 +0000 (16:34 +0200)]
Fix a FIXME: use a dynamic table.

2 years agoDon't disable malloc override anymore when using realloc().
Arnaud Giersch [Wed, 9 Jun 2021 13:09:26 +0000 (15:09 +0200)]
Don't disable malloc override anymore when using realloc().

2 years agoFinally implement smpi shared realloc.
Arnaud Giersch [Wed, 9 Jun 2021 13:07:49 +0000 (15:07 +0200)]
Finally implement smpi shared realloc.

Use legacy malloc/free again (through xbt) to be able to call realloc on need.

2 years agoAdd memset(0) for shared calloc.
Arnaud Giersch [Wed, 9 Jun 2021 15:21:48 +0000 (17:21 +0200)]
Add memset(0) for shared calloc.

Add missing barrier to auto-shared test.

2 years agoLet's be more tolerant with shared realloc() and only issue a warning.
Arnaud Giersch [Tue, 8 Jun 2021 14:52:52 +0000 (16:52 +0200)]
Let's be more tolerant with shared realloc() and only issue a warning.

2 years agoDie loudly if smpi_shared_realloc_intercept is used.
Arnaud Giersch [Tue, 8 Jun 2021 13:53:02 +0000 (15:53 +0200)]
Die loudly if smpi_shared_realloc_intercept is used.

2 years agoPlug memory leaks with tests mpich3-test/rma/linked_list_*.
Arnaud Giersch [Tue, 8 Jun 2021 13:20:43 +0000 (15:20 +0200)]
Plug memory leaks with tests mpich3-test/rma/linked_list_*.

2 years agoFix memleaks with MPI_*_get_info, when info is duplicated.
Arnaud Giersch [Tue, 8 Jun 2021 12:11:50 +0000 (14:11 +0200)]
Fix memleaks with MPI_*_get_info, when info is duplicated.

2 years agoMerge branch 'factor_in_actions' into 'master'
Augustin Degomme [Tue, 8 Jun 2021 09:19:19 +0000 (09:19 +0000)]
Merge branch 'factor_in_actions' into 'master'

New implementation for bandwidth factors

See merge request simgrid/simgrid!64

2 years agoreduce number of iterations to speedup rma test
Augustin Degomme [Tue, 8 Jun 2021 07:26:04 +0000 (09:26 +0200)]
reduce number of iterations to speedup rma test

2 years agoprotect type_creation routines against null pointers in output types.
Augustin Degomme [Mon, 7 Jun 2021 19:12:53 +0000 (21:12 +0200)]
protect type_creation routines against null pointers in output types.

2 years agocatch if MPI_Win_fence was only called once (not enough) when MPI_Win_free is called.
Augustin Degomme [Mon, 7 Jun 2021 18:57:48 +0000 (20:57 +0200)]
catch if MPI_Win_fence was only called once (not enough) when MPI_Win_free is called.

2 years agobetter check for mpi_datatype_null
Augustin Degomme [Mon, 7 Jun 2021 18:56:32 +0000 (20:56 +0200)]
better check for mpi_datatype_null

2 years agocheck that we are not using RMA-reserved MPI_Op in non-RMA calls.
Augustin Degomme [Mon, 7 Jun 2021 15:12:45 +0000 (17:12 +0200)]
check that we are not using RMA-reserved MPI_Op in non-RMA calls.

2 years agoget_accumulate: if MPI_NO_OP is specified, origin* inputs are irrelevant
Augustin Degomme [Mon, 7 Jun 2021 14:32:21 +0000 (16:32 +0200)]
get_accumulate: if MPI_NO_OP is specified, origin* inputs are irrelevant
+ activate test.

2 years agoTry to avoid another ifdef WIN32.
Bruno Donassolo [Mon, 7 Jun 2021 15:15:16 +0000 (17:15 +0200)]
Try to avoid another ifdef WIN32.

Use unique_ptr to manage handle. Thanks @agiersch

2 years agoAs always, forgot windows build
Bruno Donassolo [Mon, 7 Jun 2021 14:03:21 +0000 (16:03 +0200)]
As always, forgot windows build

2 years agoMove load_platf to EngineImpl
Bruno Donassolo [Mon, 7 Jun 2021 10:49:10 +0000 (12:49 +0200)]
Move load_platf to EngineImpl

Keep platf lib opened until end of simulation in case of user is using
some network callback defined in it.

2 years agoPlease sonar
Bruno Donassolo [Mon, 7 Jun 2021 08:08:30 +0000 (10:08 +0200)]
Please sonar

2 years agoDestroy dead actors after mc::replay() is completed (fix memory leak).
Arnaud Giersch [Sun, 6 Jun 2021 20:40:42 +0000 (22:40 +0200)]
Destroy dead actors after mc::replay() is completed (fix memory leak).

2 years agoCorrectly remember buffer between persistent communications.
Arnaud Giersch [Sun, 6 Jun 2021 10:03:26 +0000 (12:03 +0200)]
Correctly remember buffer between persistent communications.

Fixes lots of Petsc tests, especially vec/is/sf/tests/ex14.c.

The buffer was lost after the first communication, and no more data could
be transfered effectively.

2 years agoCall cleanup_attr<Comm> before marking Comm as deleted.
Arnaud Giersch [Fri, 4 Jun 2021 19:47:14 +0000 (21:47 +0200)]
Call cleanup_attr<Comm> before marking Comm as deleted.

The MPI_Comm may be used by the attr cleanup callbacks.

2 years agoRemove a global variable, and use a static to remember if smpi_main is running.
Arnaud Giersch [Fri, 4 Jun 2021 19:34:02 +0000 (21:34 +0200)]
Remove a global variable, and use a static to remember if smpi_main is running.

The value of 'running_with_smpi_main' is effectively used later, when the
simgrid::config callback is executed.

2 years agoRestore public smpi_init_options().
Arnaud Giersch [Fri, 4 Jun 2021 15:45:07 +0000 (17:45 +0200)]
Restore public smpi_init_options().

It was wrongly removed in commit 6a046487fb Make smpi_switch_data_segment check if a switch is needed, and return true when it occurs.

2 years agoFix test on MAC OS
Bruno Donassolo [Fri, 4 Jun 2021 14:37:13 +0000 (16:37 +0200)]
Fix test on MAC OS

2 years agoTry to fix test on CI
Bruno Donassolo [Fri, 4 Jun 2021 12:17:04 +0000 (14:17 +0200)]
Try to fix test on CI

2 years agoAn example with SMPI and CPP platform
Bruno Donassolo [Thu, 3 Jun 2021 13:59:50 +0000 (15:59 +0200)]
An example with SMPI and CPP platform

Shows how to use smpirun to execute an application with the platform described in C++.

2 years agoMinor fix usage
Bruno Donassolo [Thu, 3 Jun 2021 13:59:27 +0000 (15:59 +0200)]
Minor fix usage

2 years agoAdjust test
Bruno Donassolo [Thu, 3 Jun 2021 12:40:31 +0000 (14:40 +0200)]
Adjust test

Empty hostfiles are now checked inside the C++ code, not in smpirun

2 years agoAdjust test
Bruno Donassolo [Thu, 3 Jun 2021 12:40:06 +0000 (14:40 +0200)]
Adjust test

Nodes chosen to run the test arent the same anymore.

2 years agoMinor fix in test.
Bruno Donassolo [Thu, 3 Jun 2021 09:23:45 +0000 (11:23 +0200)]
Minor fix in test.

Just messages order has changed.

2 years agoMoving SMPI app deployment to C++ code
Bruno Donassolo [Wed, 2 Jun 2021 18:11:09 +0000 (20:11 +0200)]
Moving SMPI app deployment to C++ code

Enable the deployment of SMPI experiments with C++ platform description.
Move application deployment from smpirun to smpi_main function.

The smpirun script used to parse the platform XML to create an
application deployment. This isn't possible anymore since we may don't
have a platform XML anymore.

Move the necessary input to smpi_main through specific cfg variables:
- smpi/hostfile: host file
- smpi/replay: replay file
- smpi/np: number of processes
- smpi/map: mapping process/rank

This cfg isn't used by users, they are cached inside the smpirun script.

2 years agoNew platform example: StarZone of StarZone
Bruno Donassolo [Fri, 23 Apr 2021 16:56:43 +0000 (18:56 +0200)]
New platform example: StarZone of StarZone

Re-implements the griffon.xml using the C++ interface.
Simplify the implementation of homogeneous clusters organized in
cabinets.

Add tests in teshsuite to use both files.

2 years agoFix build mac/windows
Bruno Donassolo [Fri, 16 Apr 2021 19:12:18 +0000 (21:12 +0200)]
Fix build mac/windows

2 years agoChange C++ platform example
Bruno Donassolo [Thu, 15 Apr 2021 12:42:50 +0000 (14:42 +0200)]
Change C++ platform example

Remove small_platform.cpp.
Add a more programmatic platform using the StarZone.

2 years agoTry to fix python build
Bruno Donassolo [Wed, 14 Apr 2021 18:31:46 +0000 (20:31 +0200)]
Try to fix python build

Add dependency for dl library.

2 years agoRuns examples with C++ platform description
Bruno Donassolo [Mon, 15 Mar 2021 17:45:25 +0000 (18:45 +0100)]
Runs examples with C++ platform description

*Loading platform
- Generates library files for C++ platforms. They can be loaded by the
engine using the same load_platform method.

- The Engine::load_platform will verify if the extension is .so, it'll
open the file using dlopen and search for the load_platform symbol.

- The platform so must contain a load_platform function that will be
called by the engine to generate the platform properly.

*Implementing an example
- Added a CMakeLists.txt in examples/platform to generate the .so for
each example.

- Pass to the tesh files a new variable "libdir" containing the
directory where the libraries are located.

2 years ago[sonar] Replace redundant type with 'auto'.
Arnaud Giersch [Fri, 4 Jun 2021 08:16:08 +0000 (10:16 +0200)]
[sonar] Replace redundant type with 'auto'.

2 years ago[sonar] Redundant parentheses.
Arnaud Giersch [Fri, 4 Jun 2021 07:40:39 +0000 (09:40 +0200)]
[sonar] Redundant parentheses.

2 years ago[sonar] Pointer-to-const.
Arnaud Giersch [Fri, 4 Jun 2021 07:38:35 +0000 (09:38 +0200)]
[sonar] Pointer-to-const.

2 years agoFix build with enable_smpi=OFF.
Arnaud Giersch [Thu, 3 Jun 2021 15:15:07 +0000 (17:15 +0200)]
Fix build with enable_smpi=OFF.

2 years agoFix include.
Arnaud Giersch [Thu, 3 Jun 2021 14:57:51 +0000 (16:57 +0200)]
Fix include.

2 years agoEnsure correct ordering of the accumulate requests.
Arnaud Giersch [Thu, 3 Jun 2021 13:34:01 +0000 (15:34 +0200)]
Ensure correct ordering of the accumulate requests.

2 years agoUseless test; TODO--.
Arnaud Giersch [Thu, 3 Jun 2021 11:57:25 +0000 (13:57 +0200)]
Useless test; TODO--.

2 years agoInitialize mmap-privatized segments earlier (before main).
Arnaud Giersch [Thu, 3 Jun 2021 11:07:08 +0000 (13:07 +0200)]
Initialize mmap-privatized segments earlier (before main).

Sometimes we may want to initiailze a global before MPI_Init.

2 years agoMake smpi_switch_data_segment check if a switch is needed, and return true when it...
Arnaud Giersch [Thu, 3 Jun 2021 09:28:56 +0000 (11:28 +0200)]
Make smpi_switch_data_segment check if a switch is needed, and return true when it occurs.

Kill global SMPI_switch_data_segment.

2 years agoUse existing function (also empties requests_ after waitall).
Arnaud Giersch [Thu, 3 Jun 2021 07:38:57 +0000 (09:38 +0200)]
Use existing function (also empties requests_ after waitall).

2 years agoImprove debug messages and avoid calling finish_comms twice when for myself.
Arnaud Giersch [Thu, 3 Jun 2021 07:37:39 +0000 (09:37 +0200)]
Improve debug messages and avoid calling finish_comms twice when for myself.

2 years agoInitialize variable.
Arnaud Giersch [Thu, 3 Jun 2021 07:23:48 +0000 (09:23 +0200)]
Initialize variable.

2 years agoUse existing functions to finish comms (and fix Win::flush).
Arnaud Giersch [Wed, 2 Jun 2021 15:38:03 +0000 (17:38 +0200)]
Use existing functions to finish comms (and fix Win::flush).

2 years agoReview usage of rank/rank_/rank() is smpi_win.
Arnaud Giersch [Wed, 2 Jun 2021 15:10:47 +0000 (17:10 +0200)]
Review usage of rank/rank_/rank() is smpi_win.

2 years agoLittle simplifications in loops.
Arnaud Giersch [Wed, 2 Jun 2021 14:37:24 +0000 (16:37 +0200)]
Little simplifications in loops.

2 years agoSome int -> bool conversions (+ use of existing macro).
Arnaud Giersch [Wed, 2 Jun 2021 12:55:46 +0000 (14:55 +0200)]
Some int -> bool conversions (+ use of existing macro).

2 years agoCall rank() only once.
Arnaud Giersch [Wed, 2 Jun 2021 11:49:30 +0000 (13:49 +0200)]
Call rank() only once.

2 years agoOoops, fmt is second arg.
Arnaud Giersch [Wed, 2 Jun 2021 10:23:02 +0000 (12:23 +0200)]
Ooops, fmt is second arg.

2 years agoPrefer emplace_back.
Arnaud Giersch [Wed, 2 Jun 2021 09:09:14 +0000 (11:09 +0200)]
Prefer emplace_back.

2 years agoGet rid of "%s" in second argument of function xbt_str_parse_*.
Arnaud Giersch [Wed, 2 Jun 2021 09:05:48 +0000 (11:05 +0200)]
Get rid of "%s" in second argument of function xbt_str_parse_*.

2 years agoXBT_ATTRIB_PRINTF for vprintf-like functions.
Arnaud Giersch [Wed, 2 Jun 2021 08:45:13 +0000 (10:45 +0200)]
XBT_ATTRIB_PRINTF for vprintf-like functions.

2 years agoDefine class SmpiBenchGuard, and use RAII to handle smpi_bench_end()/smpi_bench_begin().
Arnaud Giersch [Wed, 2 Jun 2021 08:15:28 +0000 (10:15 +0200)]
Define class SmpiBenchGuard, and use RAII to handle smpi_bench_end()/smpi_bench_begin().

2 years agoAdd missing calls to smpi_bench_begin() on error paths.
Arnaud Giersch [Tue, 1 Jun 2021 20:45:17 +0000 (22:45 +0200)]
Add missing calls to smpi_bench_begin() on error paths.

2 years agoCannot set split-duplex through s4u intf.
Bruno Donassolo [Tue, 1 Jun 2021 15:48:47 +0000 (17:48 +0200)]
Cannot set split-duplex through s4u intf.

This makes sense only in XML where it properly creates the
link-up/link-down.

2 years agoAdd fg#71 to changelog [ci-skip]
Bruno Donassolo [Tue, 1 Jun 2021 15:48:18 +0000 (17:48 +0200)]
Add fg#71 to changelog [ci-skip]

2 years agoUpdate ChangeLog
Bruno Donassolo [Tue, 1 Jun 2021 09:12:51 +0000 (11:12 +0200)]
Update ChangeLog

2 years agoAdjust timing of SMPI tests
Bruno Donassolo [Mon, 31 May 2021 12:52:56 +0000 (14:52 +0200)]
Adjust timing of SMPI tests

For sure SMPI is the most impacted by the bandwidth factors changes.
It seems especially impacted when collective comms are involved.

The old version used 2 factors for SMPI comms:
1) network/bandwidth-factor was used to reduce the link capacity (e.g.
0.97*C for LV08)
2) smpi/bw-factor was used for each communication, limitating the flow
capacity.

Now, the code is simplified, each communication has only 1 bw-factor
that is applied after it's done, at the update remaining phase.
In most cases, only the bw-factor are applied now but after the comm is
done, not before

2 years agoFix link-load test
Bruno Donassolo [Mon, 31 May 2021 08:51:47 +0000 (10:51 +0200)]
Fix link-load test

In the old version, our links capacity were 0.97*C, now it's just C.
So, more bytes can be transmitted through the links

2 years agoFix timing of Vivaldi/two_peers.xml tests
Bruno Donassolo [Mon, 31 May 2021 08:41:40 +0000 (10:41 +0200)]
Fix timing of Vivaldi/two_peers.xml tests

In this platform file, the communication is bounded by the big latency
between nodes (as consequence of the distance between vivaldi
coordinates).

Therefore, we now apply the bandwidth factor (0.97) on top of this
time, delaying a little the communications.

2 years agoFix timing of Wi-Fi tests.
Bruno Donassolo [Mon, 31 May 2021 08:18:41 +0000 (10:18 +0200)]
Fix timing of Wi-Fi tests.

Their timing were calculated considering that no factor were applied in
Wi-Fi communications.
This isn't the case anymore, since by default, we would apply the 0.97
factor from LV08 to these communications.
Setting CM02 as base network model since it doesn't apply any bandwidth
factor.

2 years agoAdjust dynamic network-factors test.
Bruno Donassolo [Fri, 28 May 2021 10:08:26 +0000 (12:08 +0200)]
Adjust dynamic network-factors test.

Improve test, including no crosstraffic config.

2 years agoNew implementation for bandwidth factors
Bruno Donassolo [Thu, 27 May 2021 14:57:57 +0000 (16:57 +0200)]
New implementation for bandwidth factors

Bandwidth factors are now implemented at the Action level, reducing the
speed that an action advances (e.g. the number of bytes transmitted).

In the past, the factor took place at the maxmin system, limiting the
amount of resources a communication could use.

For example, a bw factor of 0.97 (default for LV08 network model) was
reflected by reducing the link capacity to 0.97*C. So, a 100MBs link had
97MBs capacity in the maxmin system.

Now, a communication alone using this link may use the 100MBs, but after
one second, it'll transmit only 97MB of data.

NOTE: This change may impact the timing of your experiments.

2 years agoMissing include.
Arnaud Giersch [Tue, 1 Jun 2021 13:51:01 +0000 (15:51 +0200)]
Missing include.

2 years agoCoding style: no global "using namespace".
Arnaud Giersch [Tue, 1 Jun 2021 13:30:44 +0000 (15:30 +0200)]
Coding style: no global "using namespace".

2 years agoPrefer std algorithms.
Arnaud Giersch [Tue, 1 Jun 2021 13:26:10 +0000 (15:26 +0200)]
Prefer std algorithms.

2 years agoInvert tests to reduce depth of nesting.
Arnaud Giersch [Tue, 1 Jun 2021 12:53:37 +0000 (14:53 +0200)]
Invert tests to reduce depth of nesting.

2 years agoUseless tests for emptyness.
Arnaud Giersch [Tue, 1 Jun 2021 12:50:07 +0000 (14:50 +0200)]
Useless tests for emptyness.

2 years agoAdd attribute(printf) to xbt::string_printf.
Arnaud Giersch [Tue, 1 Jun 2021 10:59:34 +0000 (12:59 +0200)]
Add attribute(printf) to xbt::string_printf.

2 years agoPointer-to-const for Sonar.
Arnaud Giersch [Tue, 1 Jun 2021 07:38:57 +0000 (09:38 +0200)]
Pointer-to-const for Sonar.

2 years agoSet shared variable *before* mutex unlock.
Arnaud Giersch [Mon, 31 May 2021 21:20:24 +0000 (23:20 +0200)]
Set shared variable *before* mutex unlock.

2 years agoDie on unwanted function calls.
Arnaud Giersch [Mon, 31 May 2021 21:01:42 +0000 (23:01 +0200)]
Die on unwanted function calls.