Computing Time Statistics at the End of the Log File
Following the completion of the last time step, AcuSolve
will print information regarding the input/output time, message passing time (for
distributed memory parallel simulations), interface search time (if non-conformal
interfaces are present), time associated with the solution of each stagger, and
total time to complete the simulation. The memory usage of the simulation is also
reported in the .log file. For
distributed memory parallel simulations, the average and maximum CPU Times and
Memory usage are printed to indicate if reasonable load balancing was achieved by
the domain decomposition.
- Input and Output times
- Report the amount of time that AcuSolve spent reading and writing files to disk. The differences between the input and output CPU/Elapsed times are caused by file system delays. When running AcuSolve in parallel, many processes may be trying to read/write to the same NFS mounted disk. When this happens, delays can occur, forcing AcuSolve to wait for file I/O. This causes the Elapsed time to increase while no CPU time is being used. Differences in CPU/Elapsed time can also be caused by processes competing for run time on an overloaded machine.
- Exchange time
- Indicates how much time AcuSolve spent passing messages between processes. For most simulations, the value of the Exchange time is 20% or less of the total time required to complete the simulation. When there is a significant difference between the CPU/Elapsed time, the implication is that there is a message passing bottle neck somewhere. This can be caused by a poorly performing network, or a switch that is unable to handle all of the traffic that it is receiving.
- The Intf. Search time
- Reports the amount of time that AcuSolve spends searching for matching faces for nonconformal interfaces (INTERFACE_SURFACE command). When a simulation containing INTERFACE_SURFACES is performed in a distributed memory parallel configuration, the search algorithm must communicate with other processes to find matching faces. Because of this, a significant amount of message passing must occur. When significant differences in CPU/Elapsed time are seen for this metric, it is typically due to delays in exchanging messages across the network/switch while searching for interface matches. For each stagger that is solved, AcuSolve reports a total of 3 metrics: No. of res/lhs formations, Elem. Form time, and Solution time.
- No. of res/lhs formations
- A tally of how many times the residual of the equation was computed, as
well as how many times the left-hand-side matrix was formed. By default,
these values should match each other, and reflect the total number of
times the equation was solved.Note: The LHS matrix formation frequency can be adjusted, causing these two values to be different. However, this is an advanced option, and is rarely changed.
- Elem. Form time
- Refers to the amount of time required to form the LHS matrix and loop over all of the elements to compute the residual of the equations. Any significant deviations between the CPU/Elapsed time for this metric are primarily due to delays in exchanging messages across the network/switch or competing processes on a machine that is overloaded.
- Solution time
- The Solution time that is reported for each stagger refers to the amount of time required by the linear solver routines to converge to the desired tolerance. The total elapsed time of the simulation is typically dominated by the solution time for the various staggers. Any significant deviations between the CPU/Elapsed time for this metric are primarily due to delays in exchanging messages across the network/switch or competing processes on a machine that is overloaded.
- Total CPU/Elapsed time
- Represents the accounting of all steps that AcuSolve performs in completing the simulation.
Any significant deviations between the CPU/Elapsed time for this metric
are primarily due to delays in exchanging messages across the
network/switch or competing processes on a machine that is overloaded.
One other possible cause of large differences is running the machine out
of memory, forcing it to write data to swap files.Note: Simply summing all other timing metrics in the summary of the .log file will not yield the same value as the total CPU/Elapsed time. There are additional operations in the solver that are not profiled due to their insignificance.