The angle between the two-dimensional slices of three-dimensional grains is approximately 120°, which is consistent with that of the traditional two-dimensional cellular automata. The grain of AZ31 magnesium alloy increases in size with the increase of temperature, and the number of grains decreases with the increase in time. Grains of different sizes are distributed normally at different times, most of which are grains with the ratio of grain diameter to average grain diameter R/Rm ≈ 1.0, which meets the minimum energy criterion of grain evolution. The results show that the normal growth of three-dimensional grains satisfies the Aboav-weaire equation, the average number of grain planes is between 12 and 14 at 420☌ and 2000 CAS, and the maximum number of grain planes is more than 40. Also, the effect of temperature on the three-dimensional grain growth process of AZ31 magnesium alloy is analyzed. However, further coarray optimi-sation is needed to narrow the performance gap between coarrays and MPI.īased on the thermodynamic conversion mechanism and energy transition principle, a three-dimensional cellular automata model of grain growth is established from the aspects of grain orientation, grain size distribution, grain growth kinetics, and grain topology. Overall, the results look promising for coarray use beyond 100k cores. The sampling and tracing analysis shows good load balancing in compute in all miniapps, but imbalance in communication, indicating that the difference in performance between MPI and coarrays is likely due to parallel libraries (MPICH2 vs libpgas) and the Cray hardware specific libraries (uGNI vs DMAPP). This is further evi-denced by the fact that very aggressive cache and inter-procedural optimisations lead to no performance gain. This is likely because the CA algorithm is network bound at scale. Adding OpenMP to MPI or to coarrays resulted in worse L2 cache hit ratio, and lower performance in all cases, even though the NUMA effects were ruled out. MPI halo exchange (HX) scaled better than coarray HX, which is surprising because both algorithms use pair-wise communications: MPI IRECV/ISEND/WAITALL vs Fortran sync images. Ping-pong latency and bandwidth results are very similar with MPI and with coarrays for message sizes from 1B to several MB.
#3d cellular automaton full
The work was done on ARCHER (Cray XC30) up to the full machine capacity: 109,056 cores. Ising energy and magnetisation were calculated with MPI_ALLREDUCE and Fortran 2018 co_sum collectives. Scaling of coarrays is compared in this work to MPI, using cellular automata (CA) 3D Ising magnetisation miniapps, built with the CASUP CA library,, developed by the authors. If you find something interesting, be sure to tell us.Fortran coarrays are an attractive alternative to MPI due to a familiar Fortran syntax, single sided communications and implementation in the compiler. There has never been a systematic study of these systems in 3D. This app can simulate over a trillion trillion trillion different rulesets across tens of thousands of cubic cells.
Experiment with starting with a hollow cube or a solid sphere to see how a rule of evolution reacts. The initial state of the lattice greatly impacts its future evolution.
The set of " rules of evolution" specify which configurations turn a cell on and which turn it off. The state of a cell going forward depends on its present state and that of its six neighbor cells: north, south, east, west, above, and below. This tool explores what are called three dimensional (3D) "totalistic" cellular automata. As the system steps forward (evolves), the rule governing each cells' on-off state is applied to determine the new configuration of cells. Cellular automata are systems consisting of a lattice (grid) of cells and a rule governing the cells' evolution.