From fe20c9170b2391a0614522f48b073078602ccf36 Mon Sep 17 00:00:00 2001 From: hamidrezanorouzi <72734524+hamidrezanorouzi@users.noreply.github.com> Date: Fri, 26 Aug 2022 18:42:07 +0430 Subject: [PATCH 1/8] Update README.md --- README.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4b2c324f..0533148b 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,13 @@ # phasicFlow -Parallel, highly efficient code (CPU and GPU) for DEM and CFD-DEM simulations. +phasicFlow is a parallel C++ code for performing DEM simulations. It can run on shared-memory multi-core computational units such as multi-core CPUs or GPUs (for now it works on CUDA-enabled GPUs). The parallelization method now mainly relies on loop-level parallelization on a shared-memory computational unit. You can build and run phasic flow in serial mode on regualr PCs, build it for multi-core CPUs to be executed in parallel, or build it for a GPU device to off-load computations to GPU. + +# Required packages +phasicFlow uses [Kokkos]( https://github.com/kokkos/kokkos) as the backend for parallelization. So, you need to also have the code in the local machine alongside phasicFlow. The make system is adjusted in a way so you do not need to compile Kokkos separately and the required code is compiled alongside the phasicFlow. + + +#Requirements +phasicFlow should work with every gnu compiler that implements C++17 standards. For now, it is tested on Ubuntu distribution of linux operating systems. If the minimum requirements are met, there should not be any problem with compiling the code. However, there are always compiler bugs from one version to another that may need extra attempts for upgrading to newer versions or downgrading to prior versions of the compiler. +* CPU builds: It requires gcc-6.x or higher. +* GPU (CUDA): NVCC-10.x or higher. + + From c597db40f06acdec9d27f23edc632fb7b97f620f Mon Sep 17 00:00:00 2001 From: hamidrezanorouzi <72734524+hamidrezanorouzi@users.noreply.github.com> Date: Fri, 26 Aug 2022 18:42:36 +0430 Subject: [PATCH 2/8] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0533148b..cfa9aad0 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ phasicFlow is a parallel C++ code for performing DEM simulations. It can run on phasicFlow uses [Kokkos]( https://github.com/kokkos/kokkos) as the backend for parallelization. So, you need to also have the code in the local machine alongside phasicFlow. The make system is adjusted in a way so you do not need to compile Kokkos separately and the required code is compiled alongside the phasicFlow. -#Requirements +# Requirements phasicFlow should work with every gnu compiler that implements C++17 standards. For now, it is tested on Ubuntu distribution of linux operating systems. If the minimum requirements are met, there should not be any problem with compiling the code. However, there are always compiler bugs from one version to another that may need extra attempts for upgrading to newer versions or downgrading to prior versions of the compiler. * CPU builds: It requires gcc-6.x or higher. * GPU (CUDA): NVCC-10.x or higher. From 3893731b2b0c7852a5ff7511a61eb6146d747f62 Mon Sep 17 00:00:00 2001 From: hamidrezanorouzi <72734524+hamidrezanorouzi@users.noreply.github.com> Date: Fri, 26 Aug 2022 18:44:20 +0430 Subject: [PATCH 3/8] Update README.md --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cfa9aad0..0ee5f0fc 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,13 @@ phasicFlow uses [Kokkos]( https://github.com/kokkos/kokkos) as the backend for p # Requirements -phasicFlow should work with every gnu compiler that implements C++17 standards. For now, it is tested on Ubuntu distribution of linux operating systems. If the minimum requirements are met, there should not be any problem with compiling the code. However, there are always compiler bugs from one version to another that may need extra attempts for upgrading to newer versions or downgrading to prior versions of the compiler. +phasicFlow should work with every gnu compiler that implements C++17 standards. For now, it is tested on Ubuntu distribution of linux operating systems. If the minimum requirements are met, there should not be any problem with compiling the code. However, there are always compiler bugs from one version to another that may need you extra attempts for upgrading to newer versions or downgrading to prior versions of the compiler. * CPU builds: It requires gcc-6.x or higher. * GPU (CUDA): NVCC-10.x or higher. +# How to build + + +# How to use + From 621d9065c8c7e63aae12d5348c9e155916395c20 Mon Sep 17 00:00:00 2001 From: hamidrezanorouzi <72734524+hamidrezanorouzi@users.noreply.github.com> Date: Fri, 26 Aug 2022 18:54:24 +0430 Subject: [PATCH 4/8] Update README.md --- README.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 0ee5f0fc..f3dbeb81 100644 --- a/README.md +++ b/README.md @@ -10,9 +10,15 @@ phasicFlow should work with every gnu compiler that implements C++17 standards. * CPU builds: It requires gcc-6.x or higher. * GPU (CUDA): NVCC-10.x or higher. -# How to build - - -# How to use +# How to build? +phasicFlow uses CMake as the build system. you need to have CMake-3.22 or higher installed on your machine. + +## build for serial execution + +## build for parallel execution on CPU + +## build for parallel execution on CUDA-enabled GPUs + +# How to use phasicFlow? From 66041080c500a518de03f7e4cec560f45468865e Mon Sep 17 00:00:00 2001 From: hamidrezanorouzi <72734524+hamidrezanorouzi@users.noreply.github.com> Date: Fri, 26 Aug 2022 18:54:50 +0430 Subject: [PATCH 5/8] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f3dbeb81..b46f5b65 100644 --- a/README.md +++ b/README.md @@ -13,11 +13,11 @@ phasicFlow should work with every gnu compiler that implements C++17 standards. # How to build? phasicFlow uses CMake as the build system. you need to have CMake-3.22 or higher installed on your machine. -## build for serial execution +### build for serial execution -## build for parallel execution on CPU +### build for parallel execution on CPU -## build for parallel execution on CUDA-enabled GPUs +### build for parallel execution on CUDA-enabled GPUs # How to use phasicFlow? From ddd9fb6e6c30960560cfa59074500d1669d52dbd Mon Sep 17 00:00:00 2001 From: hamidrezanorouzi <72734524+hamidrezanorouzi@users.noreply.github.com> Date: Fri, 26 Aug 2022 19:01:35 +0430 Subject: [PATCH 6/8] Update README.md --- README.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index b46f5b65..20dc3012 100644 --- a/README.md +++ b/README.md @@ -14,11 +14,16 @@ phasicFlow should work with every gnu compiler that implements C++17 standards. phasicFlow uses CMake as the build system. you need to have CMake-3.22 or higher installed on your machine. ### build for serial execution - + ### build for parallel execution on CPU - + ### build for parallel execution on CUDA-enabled GPUs - + # How to use phasicFlow? - - + +# Extentions in future +### parallelization +* Enabling other backends, HIP (amd-GPUs) and HPC (CPU), for phasicFlow +* Extending high-level parallelization and impelmenting spacial partitioning and load balancing for muilti-GPU computations and running phasicFlow on distributed memory super-computers + +### basic features From 5f40bcd775ff8d968ef31a66b244a6f897831f7f Mon Sep 17 00:00:00 2001 From: hamidrezanorouzi <72734524+hamidrezanorouzi@users.noreply.github.com> Date: Sat, 27 Aug 2022 12:00:58 +0430 Subject: [PATCH 7/8] Update README.md --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 20dc3012..87fef480 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,10 @@ phasicFlow should work with every gnu compiler that implements C++17 standards. * CPU builds: It requires gcc-6.x or higher. * GPU (CUDA): NVCC-10.x or higher. +You also need to have CMake installed on your computer. At the moment CMake-3.22 or higher is needed. + # How to build? -phasicFlow uses CMake as the build system. you need to have CMake-3.22 or higher installed on your machine. +phasicFlow uses CMake as the build system. you need to have CMake-3.22 or higher installed on your machine. you can either use the command line for setting-up the build system, or use `cmake-gui` to setup your build system through the GUI. ### build for serial execution @@ -23,7 +25,7 @@ phasicFlow uses CMake as the build system. you need to have CMake-3.22 or higher # Extentions in future ### parallelization -* Enabling other backends, HIP (amd-GPUs) and HPC (CPU), for phasicFlow +* Enabling OpenMPTarget backend to include more GPUs for off-loading calculations. * Extending high-level parallelization and impelmenting spacial partitioning and load balancing for muilti-GPU computations and running phasicFlow on distributed memory super-computers ### basic features From 9a3c6c57734048bf01b273834d54bf6ad11a785e Mon Sep 17 00:00:00 2001 From: hamidrezanorouzi <72734524+hamidrezanorouzi@users.noreply.github.com> Date: Sat, 27 Aug 2022 12:03:44 +0430 Subject: [PATCH 8/8] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 87fef480..6dad4e72 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ phasicFlow uses CMake as the build system. you need to have CMake-3.22 or higher # Extentions in future ### parallelization -* Enabling OpenMPTarget backend to include more GPUs for off-loading calculations. +* Extending the code for using OpenMPTarget backend to include more GPUs for off-loading the computations. * Extending high-level parallelization and impelmenting spacial partitioning and load balancing for muilti-GPU computations and running phasicFlow on distributed memory super-computers ### basic features