diff --git a/setup.py b/setup.py index 45e24a85..97c81c5c 100644 --- a/setup.py +++ b/setup.py @@ -59,9 +59,8 @@ def build_extension(self, ext): if cuda_arch: cmake_args.append(f"-DCMAKE_CUDA_ARCHITECTURES={cuda_arch}") - num_jobs = os.cpu_count() - build_args = ["--config", "Release", f"-j{num_jobs}"] - + num_jobs = int(os.environ.get("BUILD_JOBS", os.cpu_count())) + build_args = ["--config", "Release", "--parallel", str(num_jobs)] if not os.path.exists(self.build_temp): os.makedirs(self.build_temp) diff --git a/solvers/PSE/extra/uammd_wrapper.cu b/solvers/PSE/extra/uammd_wrapper.cu index bc00c05c..b1d5694e 100644 --- a/solvers/PSE/extra/uammd_wrapper.cu +++ b/solvers/PSE/extra/uammd_wrapper.cu @@ -191,6 +191,7 @@ struct UAMMD_PSE { } ~UAMMD_PSE() { + this->clean(); cudaDeviceSynchronize(); cudaStreamDestroy(st); } @@ -202,7 +203,8 @@ struct UAMMD_PSE { fcm.reset(); pse.reset(); pd.reset(); - sys->finish(); + if (sys) + sys->finish(); sys.reset(); } diff --git a/solvers/PSE/mobility.h b/solvers/PSE/mobility.h index fa38e9fd..02e87497 100644 --- a/solvers/PSE/mobility.h +++ b/solvers/PSE/mobility.h @@ -145,6 +145,7 @@ class PSE : public libmobility::Mobility { linear.data(), temperature, sqrtM_prefactor); } + void clean() { pse->clean(); } private: bool onlyShearStrainChanged(Parameters i_par) {