EZGA settings¶
EZGA defines the evolutionary search and its scientific settings. SODA reads those settings through a native YAML file, distributes evaluations, and collects results. Start with the FCC example before changing the search or calculator.
Where settings belong¶
Location |
What it controls |
|---|---|
|
Workflow selection, native YAML path, agents, and initial-structure inputs. |
|
Population, objectives, variation, simulator, and supported native search settings. |
MPI launcher and SODA command line |
Rank allocation, GPU workers, memory cap, output, and restart. |
Keep [Main] job = ezga. Use "$SODA_BIN" --help-config to inspect INI
options and "$SODA_BIN" --help for runtime options in your build. Activate
its environment first, as described in Preparing a run.
SODA configuration: [EZGA]¶
These are SODA-specific integration options and defaults. The example sets the YAML and seed paths explicitly.
Option |
Default |
Purpose |
|---|---|---|
|
Empty |
Native EZGA YAML path, resolved relative to |
|
|
Agent count; more than one requires a matching list of agent INI files. |
|
Empty |
One INI path per agent, comma-separated; each child configuration declares one agent. |
|
Empty |
JSON seed-file path for a fresh run, relative to |
|
Empty |
Generated-population specification; mutually exclusive with |
|
Empty |
Optional HDF5 output-path override, resolved relative to |
|
Empty |
Optional SAGE fields to preserve; unrequested optional fields are not carried through SODA. |
|
|
Require the requested optional fields; only |
|
Empty |
Additional Python module prefixes admitted for native factory imports. |
|
|
Explicitly allow filesystem-based factory imports when needed by a custom setup. |
The factory specifications in the supplied FCC YAML use installed EZGA modules and need no additional import permissions. For custom functions, see Preparing custom factories for SODA–EZGA for the extension points, input/output contracts, and YAML syntax. The EZGA configuration guide also covers converting an existing native run setup.
Scientific settings in the FCC YAML¶
These are example values, not a list of EZGA’s global defaults. Edit them in the existing native YAML.
Setting |
Example value |
Purpose |
|---|---|---|
|
|
Generation limit after initial-population evaluation at generation 0. |
|
|
Native search seed. Native difference: a nonnegative |
|
|
Target number of selected individuals. |
|
|
Selects individuals using Boltzmann selection. |
|
|
Allows the identical starting seeds in this demonstration. |
|
|
Initial mean number of mutations per candidate, not a probability. |
|
|
Strains cell vectors and atomic positions; strain components are bounded by ±1%. |
|
|
Uses energy as the optimization objective. |
|
|
Records cell volume as a feature. |
|
|
Uses the same sampling-temperature parameter for all candidates in a batch. |
Within simulator.calculator.kwargs, nvt_steps: 0 skips molecular dynamics,
fmax: 0.001 sets the relaxation force threshold in eV/Å, and
steps_max: 100 limits optimizer steps. constant_volume: false and
hydrostatic_strain: true allow isotropic cell-volume relaxation.
The nested Lennard–Jones calculator uses Ar
sigma: 3.405 Å, epsilon: 0.0103 eV, rc: 8.0 Å, and shift: false.
Changing these values changes the reference lattice and energy.
Optional population constraints¶
Use population.constraints to filter candidates by the features computed by
evaluator.features_funcs. For example, this native factory accepts atom
counts from 1 through 100, including both bounds:
evaluator:
features_funcs:
factory: ezga.evaluator.features:feature_total_atoms
population:
constraints:
- factory: ezga.DoE.constraint:ConstraintFactory.within_range
args: [0, 1, 100]
This is an optional example, separate from the FCC settings above. Merge it
into your existing YAML while keeping the other evaluator and population
settings. Here 0 selects the atom-count feature column; update that index
if you combine or reorder features. The native factory needs no additional
trusted_import_prefixes entry.
All predicates must pass. SODA checks generated and supported injected/guided candidates before dispatch, then checks each returned calculator product using its updated features. A rejected candidate can also affect adaptive mutation/crossover weights through native operator penalties.
Set constraints: [] or constraints: null to disable these checks. An
explicit list, including a HiSE stage override, replaces the previous list.
Initial seed admission and inbound migrant admission are separate; these
predicates do not guarantee that every retained seed or migrant passes.
They also do not fix atoms during relaxation.
See Population constraints for custom factories, feature-name lookup, and the input/output contract, and Inspect rejected candidates for the saved records.
Unsupported and redirected settings¶
Check native inputs before reusing them
Native difference marks changed behavior; unsupported marks rejected choices. These notes apply to the SODA integration.
Native setting |
Restriction or alternative when using SODA |
|---|---|
|
Unsupported in YAML. Use |
|
Native difference: keep |
|
Native difference: native log/duplicate files are replaced by SODA logs and HDF5 records. |
|
Native difference: keep |
|
Unsupported when nonempty. Use |
|
Native difference: leave unset; population state is stored in SODA’s HDF5 database. |
|
Unsupported. Descriptor-hash provenance is not mapped by the integration. |
|
Native difference: |
|
Unsupported. MPI exchange and saved runtime state replace native mailboxes and |
|
Retired INI options. Worker placement follows the MPI layout; use CLI |
Optional SAGE |
Not admitted by |
agentic.shard_width and agentic.poll_interval must retain defaults 2
and 2.0; they do not control SODA’s MPI exchange. See the
configuration support rules and
the detailed EZGA guide when adapting an
advanced native configuration.
Runtime controls¶
The FCC launch uses one agent and one
calculator worker. Increasing MPI ranks does not itself increase
num_agents; additional worker capacity can evaluate candidates for the
existing agent. Keep CPU capacity for the agent when using GPU calculators.
--num-gpu-workers-per-node=0 selects CPU workers for the FCC calculator.
--ezga_memory_cap_mb=0 leaves shared input/result payload capacity at its
automatic setting. A positive value sets the explicit payload cap in MB
for all EZGA agents, not a total process-memory limit. Use SODA’s --loadrun for
restart, and inspect complete generation commits before
interpreting a partially finished run as a completed population.