14#include "arcane/utils/ParallelLoopOptions.h"
16#include "arcane/utils/Property.h"
17#include "arcane/utils/FatalErrorException.h"
37 return "deterministic";
45 _stringToPartitioner(
const String& str)
49 if (str ==
"deterministic")
53 ARCANE_FATAL(
"Bad value '{0}' for partitioner. Valid values are 'auto', 'static' or 'deterministic'", str);
60template <
typename V>
void ParallelLoopOptions::
61_applyPropertyVisitor(V& p)
64 p << b.addInt32(
"ParallelLoopGrainSize")
65 .addDescription(
"GrainSize of the loop")
66 .addCommandLineArgument(
"ParallelLoopGrainSize")
67 .addGetter([](
auto a) {
return a.x.grainSize(); })
68 .addSetter([](
auto a) { a.x.setGrainSize(a.v); });
70 p << b.addString(
"ParallelLoopPartitioner")
71 .addDescription(
"Partitioner for the loop (auto, static or deterministic)")
72 .addCommandLineArgument(
"ParallelLoopPartitioner")
73 .addGetter([](
auto a) {
return _partitionerToString(a.x.partitioner()); })
74 .addSetter([](
auto a) { a.x.setPartitioner(_stringToPartitioner(a.v)); });
80ARCANE_REGISTER_PROPERTY_CLASS(ParallelLoopOptions, ());
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Partitioner
Type du partitionneur.
@ Auto
Laisse le partitionneur géré le partitionnement et l'ordonnancement (défaut)
@ Static
Utilise un partitionnement statique.
@ Deterministic
Utilise un partitionnement et un ordonnancement statique.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-