!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!! !!!!! !!!!! VERIFICATION CHECK: vc-thread-safe !!!!! !!!!! !!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Description: This verification check examines whether a model called in parallel by multiple threads gives the same results as when called sequentially. A number `num_configs` (preset in the code) of configurations is generated each containing a different number of atoms based on a randomly distorted, periodic, face-centered cubic (fcc) structure containing a random distribution of all atoms supported by the model. Configurations used for testing are provided as auxiliary files. The energy and forces for each configuration are computed in sequence. Then the calculations are repeated in using Python multithreading with `num_configs` threads, and with the Global Interpreter Lock (GIL) released to ensure true parallelism. Each thread possesses its own copy of memory related to the calculation. The threaded calculations are repeated `num_cycles` times (preset in the code) with the configurations randomly distributed to the threads to create many varying opportunities for collisions. To pass the test, the total energy and the forces on all atoms for a given configuration obtained in all cycles must be be identical to those obtained in the sequential calculation. Failure of this verification check implies that the model is inappropriately storing information in persistent (static) memory during or between calls. Passing this verification check provides some assurance the the model is thread safe, but it is NOT a guarantee due to the inherent randomness of race conditions in unsafe code. To be certain, the model code would need to be studied and analyzed carefully. Author: Ellad Tadmor -------------------------------------------------------------------------------- Results for KIM Model : EAM_Dynamo_HaleWongZimmerman_2008PairHybrid_PdAgH__MO_104806802344_005 Supported species : Ag H Pd Number of cores = 11 number of configurations = 10 number of cycles = 10 random seed = 13 minimum unit cells per side = 2 maximum unit cells per side = 10 -------------------------------------------------------------------------------- SINGLE THREAD REFERENCE CALCULATIONS Config #Atoms Energy Ave Norm ----------------------------------------------- 0 256 -5.815653e+02 1.053662e-01 1 32 -5.801962e+01 3.088322e-01 2 2048 -5.144172e+03 2.864743e-02 3 2916 -7.418530e+03 2.387028e-02 4 1372 -3.409699e+03 3.741906e-02 5 108 -2.318326e+02 1.563577e-01 6 1372 -3.425809e+03 3.556229e-02 7 500 -1.186649e+03 6.508946e-02 8 256 -5.801385e+02 9.810499e-02 9 108 -2.265974e+02 1.732200e-01 ----------------------------------------------- THREADED CALCULATIONS ### Cycle 1 ### Config #Atoms Energy Ave Norm Thread Status ----------------------------------------------------------------- 0 256 -5.815653e+02 1.053662e-01 7 OK 1 32 -5.801962e+01 3.088322e-01 0 OK 2 2048 -5.144172e+03 2.864743e-02 8 OK 3 2916 -7.418530e+03 2.387028e-02 9 OK 4 1372 -3.409699e+03 3.741906e-02 5 OK 5 108 -2.318326e+02 1.563577e-01 2 OK 6 1372 -3.425809e+03 3.556229e-02 6 OK 7 500 -1.186649e+03 6.508946e-02 1 OK 8 256 -5.801385e+02 9.810499e-02 4 OK 9 108 -2.265974e+02 1.732200e-01 3 OK ----------------------------------------------------------------- ### Cycle 2 ### Config #Atoms Energy Ave Norm Thread Status ----------------------------------------------------------------- 0 256 -5.815653e+02 1.053662e-01 8 OK 1 32 -5.801962e+01 3.088322e-01 7 OK 2 2048 -5.144172e+03 2.864743e-02 3 OK 3 2916 -7.418530e+03 2.387028e-02 9 OK 4 1372 -3.409699e+03 3.741906e-02 0 OK 5 108 -2.318326e+02 1.563577e-01 5 OK 6 1372 -3.425809e+03 3.556229e-02 1 OK 7 500 -1.186649e+03 6.508946e-02 4 OK 8 256 -5.801385e+02 9.810499e-02 6 OK 9 108 -2.265974e+02 1.732200e-01 2 OK ----------------------------------------------------------------- ### Cycle 3 ### Config #Atoms Energy Ave Norm Thread Status ----------------------------------------------------------------- 0 256 -5.815653e+02 1.053662e-01 0 OK 1 32 -5.801962e+01 3.088322e-01 5 OK 2 2048 -5.144172e+03 2.864743e-02 1 OK 3 2916 -7.418530e+03 2.387028e-02 8 OK 4 1372 -3.409699e+03 3.741906e-02 9 OK 5 108 -2.318326e+02 1.563577e-01 7 OK 6 1372 -3.425809e+03 3.556229e-02 4 OK 7 500 -1.186649e+03 6.508946e-02 3 OK 8 256 -5.801385e+02 9.810499e-02 6 OK 9 108 -2.265974e+02 1.732200e-01 2 OK ----------------------------------------------------------------- ### Cycle 4 ### Config #Atoms Energy Ave Norm Thread Status ----------------------------------------------------------------- 0 256 -5.815653e+02 1.053662e-01 5 OK 1 32 -5.801962e+01 3.088322e-01 3 OK 2 2048 -5.144172e+03 2.864743e-02 7 OK 3 2916 -7.418530e+03 2.387028e-02 6 OK 4 1372 -3.409699e+03 3.741906e-02 8 OK 5 108 -2.318326e+02 1.563577e-01 0 OK 6 1372 -3.425809e+03 3.556229e-02 9 OK 7 500 -1.186649e+03 6.508946e-02 4 OK 8 256 -5.801385e+02 9.810499e-02 2 OK 9 108 -2.265974e+02 1.732200e-01 1 OK ----------------------------------------------------------------- ### Cycle 5 ### Config #Atoms Energy Ave Norm Thread Status ----------------------------------------------------------------- 0 256 -5.815653e+02 1.053662e-01 8 OK 1 32 -5.801962e+01 3.088322e-01 6 OK 2 2048 -5.144172e+03 2.864743e-02 7 OK 3 2916 -7.418530e+03 2.387028e-02 3 OK 4 1372 -3.409699e+03 3.741906e-02 1 OK 5 108 -2.318326e+02 1.563577e-01 2 OK 6 1372 -3.425809e+03 3.556229e-02 9 OK 7 500 -1.186649e+03 6.508946e-02 5 OK 8 256 -5.801385e+02 9.810499e-02 4 OK 9 108 -2.265974e+02 1.732200e-01 0 OK ----------------------------------------------------------------- ### Cycle 6 ### Config #Atoms Energy Ave Norm Thread Status ----------------------------------------------------------------- 0 256 -5.815653e+02 1.053662e-01 3 OK 1 32 -5.801962e+01 3.088322e-01 0 OK 2 2048 -5.144172e+03 2.864743e-02 5 OK 3 2916 -7.418530e+03 2.387028e-02 2 OK 4 1372 -3.409699e+03 3.741906e-02 8 OK 5 108 -2.318326e+02 1.563577e-01 7 OK 6 1372 -3.425809e+03 3.556229e-02 1 OK 7 500 -1.186649e+03 6.508946e-02 9 OK 8 256 -5.801385e+02 9.810499e-02 6 OK 9 108 -2.265974e+02 1.732200e-01 4 OK ----------------------------------------------------------------- ### Cycle 7 ### Config #Atoms Energy Ave Norm Thread Status ----------------------------------------------------------------- 0 256 -5.815653e+02 1.053662e-01 8 OK 1 32 -5.801962e+01 3.088322e-01 1 OK 2 2048 -5.144172e+03 2.864743e-02 7 OK 3 2916 -7.418530e+03 2.387028e-02 4 OK 4 1372 -3.409699e+03 3.741906e-02 3 OK 5 108 -2.318326e+02 1.563577e-01 0 OK 6 1372 -3.425809e+03 3.556229e-02 9 OK 7 500 -1.186649e+03 6.508946e-02 5 OK 8 256 -5.801385e+02 9.810499e-02 2 OK 9 108 -2.265974e+02 1.732200e-01 6 OK ----------------------------------------------------------------- ### Cycle 8 ### Config #Atoms Energy Ave Norm Thread Status ----------------------------------------------------------------- 0 256 -5.815653e+02 1.053662e-01 1 OK 1 32 -5.801962e+01 3.088322e-01 5 OK 2 2048 -5.144172e+03 2.864743e-02 8 OK 3 2916 -7.418530e+03 2.387028e-02 3 OK 4 1372 -3.409699e+03 3.741906e-02 4 OK 5 108 -2.318326e+02 1.563577e-01 0 OK 6 1372 -3.425809e+03 3.556229e-02 2 OK 7 500 -1.186649e+03 6.508946e-02 7 OK 8 256 -5.801385e+02 9.810499e-02 9 OK 9 108 -2.265974e+02 1.732200e-01 6 OK ----------------------------------------------------------------- ### Cycle 9 ### Config #Atoms Energy Ave Norm Thread Status ----------------------------------------------------------------- 0 256 -5.815653e+02 1.053662e-01 3 OK 1 32 -5.801962e+01 3.088322e-01 0 OK 2 2048 -5.144172e+03 2.864743e-02 5 OK 3 2916 -7.418530e+03 2.387028e-02 6 OK 4 1372 -3.409699e+03 3.741906e-02 9 OK 5 108 -2.318326e+02 1.563577e-01 4 OK 6 1372 -3.425809e+03 3.556229e-02 8 OK 7 500 -1.186649e+03 6.508946e-02 2 OK 8 256 -5.801385e+02 9.810499e-02 7 OK 9 108 -2.265974e+02 1.732200e-01 1 OK ----------------------------------------------------------------- ### Cycle 10 ### Config #Atoms Energy Ave Norm Thread Status ----------------------------------------------------------------- 0 256 -5.815653e+02 1.053662e-01 5 OK 1 32 -5.801962e+01 3.088322e-01 7 OK 2 2048 -5.144172e+03 2.864743e-02 1 OK 3 2916 -7.418530e+03 2.387028e-02 0 OK 4 1372 -3.409699e+03 3.741906e-02 4 OK 5 108 -2.318326e+02 1.563577e-01 2 OK 6 1372 -3.425809e+03 3.556229e-02 9 OK 7 500 -1.186649e+03 6.508946e-02 6 OK 8 256 -5.801385e+02 9.810499e-02 3 OK 9 108 -2.265974e+02 1.732200e-01 8 OK ----------------------------------------------------------------- ================================================================================ To pass this verification check all threads must give identical results, i.e. the same total energy and the same average norm (force norm divided by the number of atoms). This is indicated by the "Status" column in the above table. Grade: P Comment: All threads give identical results for tested case. Model appears to be thread safe.