ECP-copa / CabanaMD

Molecular dynamics proxy application based on Cabana
Other
20 stars 14 forks source link

Incorporate Cajita load balancer #104

Closed aetx closed 2 weeks ago

aetx commented 3 years ago

Incorporate Cajita::LoadBalancer instead of directly using ALL.

Cleanup and tests are still todo.

junghans commented 2 years ago

@streeve please review

@aetx can you add an example

aetx commented 2 years ago

The runs shown in the presentation are done using the default input/in.lj just with more steps and less frequent VTK output.

The main change to make the system sparse is, however, hardcoded in cabanamd_impl.h. The input scheme does not support a partially filled system box. The patch is simple, but sadly hardcoded (and here with the extension .txt since GitHub does not recognize .patch...): Unbalance.patch.txt

--- inputFile_impl.h    2021-11-12 15:29:27.030136901 +0100
+++ inputFile_impl_unbalanced.h 2022-02-03 17:19:10.312665687 +0100
@@ -557,9 +557,9 @@
     std::array<T_X_FLOAT, 3> global_low = { 0.0, 0.0, 0.0 };
     std::array<T_X_FLOAT, 3> global_high = { max_x, max_y, max_z };
     // Uncomment the following to create a vacuum for an unbalanced system.
-    // global_high[0] *= 2;
-    // global_high[1] *= 2;
-    // global_high[2] *= 2;
+    global_high[0] *= 2;
+    global_high[1] *= 2;
+    global_high[2] *= 2;
     system->create_domain( global_low, global_high, comm_ghost_cutoff );
     s = *system;
streeve commented 2 weeks ago

Closing in favor of #113