14#include "arcane/utils/ParallelLoopOptions.h"
16#include "arcane/utils/Property.h"
17#include "arcane/utils/FatalErrorException.h"
18#include "arcane/utils/internal/ParallelLoopOptionsProperties.h"
38 return "deterministic";
46 _stringToPartitioner(
const String& str)
50 if (str ==
"deterministic")
54 ARCANE_FATAL(
"Bad value '{0}' for partitioner. Valid values are 'auto', 'static' or 'deterministic'", str);
61template <
typename V>
void ParallelLoopOptionsProperties::
62_applyPropertyVisitor(V& p)
65 p << b.addInt32(
"ParallelLoopGrainSize")
66 .addDescription(
"GrainSize of the loop")
67 .addCommandLineArgument(
"ParallelLoopGrainSize")
68 .addGetter([](
auto a) {
return a.x.grainSize(); })
69 .addSetter([](
auto a) { a.x.setGrainSize(a.v); });
71 p << b.addString(
"ParallelLoopPartitioner")
72 .addDescription(
"Partitioner for the loop (auto, static or deterministic)")
73 .addCommandLineArgument(
"ParallelLoopPartitioner")
74 .addGetter([](
auto a) {
return _partitionerToString(a.x.partitioner()); })
75 .addSetter([](
auto a) { a.x.setPartitioner(_stringToPartitioner(a.v)); });
81ARCANE_REGISTER_PROPERTY_CLASS(ParallelLoopOptionsProperties, ());
#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 -*-