Commit Graph

294 Commits

Author SHA1 Message Date
Tobias Meyer Andersen
60359268fd Add cmake message if not hipifying due to version 2024-05-08 14:28:44 +02:00
Tobias Meyer Andersen
69a45b632e lower cmake version, keep it for HIP 2024-05-08 14:09:26 +02:00
Tobias Meyer Andersen
e9d6b326cc Add HIP support for AMD GPUs
This commits adds cmake functionality that can
hipify the cuistl framework to support AMD GPUs.

Some tests have been written as HIP does not mirror
CUDA exactly.

CONVERT_CUDA_TO_HIP is the new CMAKE argument.
CMAKE version is increased to include HIP
as a language (3.21 required).

A macro is added to create a layer of indirection
that will make only cuistl files that have been
changed rehipified.

Some BDA stuff is extracted to make sure CUDA
is not accidentally included.
2024-05-06 15:56:53 +02:00
Kai Bao
68c202eb55 using flowexp as files names 2024-04-23 11:39:49 +02:00
Kai Bao
f6170ec1dd copying the ebos from opm-flowexperimental 2024-04-23 11:39:49 +02:00
Arne Morten Kvarving
388c6c72f7 Flow: drop ebos from simulator object filenames 2024-03-08 12:39:48 +01:00
Tobias Meyer Andersen
b59950edd9 Fix cmake warning with line order chagne 2024-03-07 15:24:24 +01:00
Bård Skaflestad
d1d22668ea Add Utility for Region-Based Phase-Filled Averages
The initial use case is calculating the phase-filled pore-volume
weighted average of the fluid mass densities per PVT region.  This
value goes into calculating depth-corrected per-cell phase pressure
values such as the BPPO and BPPG summary vectors.

This class manages a single linear array which separately tracks the
averages' numerators and denominators as running sums per region and
region set.  We pick this data structure to simplify the cross-rank
reduction needed in MPI parallel runs.  Client code is expected to
add individual per-cell and per-phase contributions using the
addCell() member function and then call the accumulateParallel()
member to affect the cross-rank reduction.  The averages will then
be available through the fieldValue() and value() member functions.

As a further view towards the initial use case, we track two
different types of average per phase--one for the phase-filled
volume and one for the pore-volume filled volume.  The latter is the
average we would get for the case of the phase saturation being one
throughout the region.  This alternative value is the fallback
option for the case of the phase saturation being identically zero
throughout the region.
2024-02-28 12:08:24 +01:00
Arne Morten Kvarving
8f1b2507d7 changed: rename simulator main files
add _main to the file name. this in preparation for
removing ebos in the simulator instance file names
2024-02-02 09:23:06 +01:00
Markus Blatt
819842d7cf Fix linking errors when using shared libraries.
We accomplish that by passing the module version as a string to the
constructors of LogOutputHelper and EclGenericOutputBlackoilModel
instead of calling moduleVersionName() in LogOutputHelper. That way
moduleVersionName is not needed by libopmsimulators anymore and
compilation works again for people requesting shared libraries via
CMake's BUILD_SHARED_LIBS variable.
2024-01-29 16:37:38 +01:00
Arne Morten Kvarving
e686fabb39 added: class for calculating RPTRST CONV 2024-01-10 13:07:34 +01:00
Torbjørn Skille
72892f0c4b PRT file updates
* Arrays genarated from RPTSOL + FIP is now strictly following Eclipse format
* Adding reservoir volume array also for custom FIP regions
2024-01-03 21:47:54 +01:00
Arne Morten Kvarving
de9c3ddfda added: test for outputdir 2023-12-19 15:21:58 +01:00
Arne Morten Kvarving
0157385668 fixed: also add dependency with ninja generator 2023-11-22 12:27:31 +01:00
Arne Morten Kvarving
32dfa0b473 vendor libfmt using FetchContent 2023-11-21 15:10:26 +01:00
Atgeirr Flø Rasmussen
8b480a0a49
Merge pull request #4852 from multitalentloes/cujac_preconditioner
Cujac preconditioner
2023-10-16 12:46:29 +02:00
Tobias Meyer Andersen
8b396fa3dc Update test properties of new tests using CUDA. Avoid comparison causing new warning 2023-10-16 11:31:00 +02:00
Razvan Nane
7e8528b43a Disable only CUDA when ROCm also selected 2023-10-11 13:29:40 +02:00
Razvan Nane
7673118f14 CUDA and HIP not allowed at the same time 2023-10-08 08:58:35 +02:00
Razvan Nane
e4abc12a05 Adapt rocsparse separate wells PR to changes made to ISTLSolverEbos 2023-10-08 08:58:35 +02:00
Razvan Nane
ca210612e1 Fix hipErrorNoBinaryForGpu when hip_FOUND 2023-10-08 08:58:35 +02:00
Markus Blatt
5a2a97d21c [cmake] Always demand rocblas to be there when activating rocsparse
This was somehow only done for hip version >=5.3, but Debian bookworm
is missing rocblas and using hipcc 2.3.0 and therefore compilation failed there.
2023-10-02 17:14:43 +02:00
Vegard Kippe
4ff08ffd2d Added testcase for TUNING/TSINIT and NEXTSTEP - depends on https://github.com/OPM/opm-tests/pull/1028 2023-08-25 14:01:51 +02:00
Arne Morten Kvarving
e03600f6ef added: build system option to enable Tracy profiler 2023-08-15 15:57:06 +02:00
Arne Morten Kvarving
896cb8484d added: option to disable the BDA solvers 2023-08-11 11:00:07 +02:00
hnil
66ff026008 remove use of hidden private defines for poly and alugrid
- fixed polygrid
- renamed executables to include blackoil in name
2023-08-08 15:30:05 +02:00
Bård Skaflestad
95d715b807 Add Parallel Calculation Support for WBPn/WPAVE
This commit adds a parallel calculation object derived from the serial
PAvgCalculator class.  This parallel version is aware of MPI
communicators and knows how to aggregate contributions from wells that
might be distributed across ranks.

We also add a wrapper class, ParallelWBPCalculation, which knows how to
exchange information from PAvgCalculatorCollection objects on different
ranks and, especially, how to properly prune inactive cells/connections.
2023-07-07 15:01:05 +02:00
Arne Morten Kvarving
c3847e8325 simplify cmake code for tuning tests
add a post command to the runSimulator script and use this to
execute the unit test at the end of the run
2023-07-03 09:05:45 +02:00
Arne Morten Kvarving
ab3f6474aa fixed: parallel super builds
commit e5e7ff7287 introduced a dependency on a generated header in a
header file. this is problematic with super-builds as there is no
explicit dependency for the simulator objects to these generated
headers.

with the ninja-generator it is smart enough to figure out this across
the subdirectories, but the make generator is not. hence we explicitly
add a dependency on the opmcommon target in this case. ideally we would
only depend on the generated header to allow compiling opmcommon and
simulator objects in parallel. however there is as far as i know no way to
depend on OUTPUT targets across subdirectories.
2023-06-30 14:58:31 +02:00
Bård Skaflestad
506e7a0fef Tag Parallel Unit Tests With Accurate Number of Processors
Otherwise, we risk oversubscribing the host system when running
multiple tests in parallel ("ctest --parallel").
2023-06-29 12:32:37 +02:00
Bård Skaflestad
77adc6ea3b Add Container for Dynamic WBPn Source Values
This commit adds a new container class,

    ParallelPAvgDynamicSourceData

which inherits from PAvgDynamicSourceData and provides a parallel
view of source contributions.  Member function

    collectLocalSources

will call the user-provided source term evaluation function for each
source location in its purview--typically those locations owned by
the current MPI rank.  Those values will be distributed to other MPI
ranks through member function synchroniseSources which will fill the
base class' 'src_' data member, and become available to clients
through read-only item spans.
2023-06-21 12:06:49 +02:00
Kjetil Olsen Lye
ceb15e22e3 Expose CuISTL solver in FlexibleSolver. 2023-05-31 15:03:31 +02:00
Kjetil Olsen Lye
b57f6ea551 Added gpu_cuda label to cuseqilu0. 2023-05-30 11:50:02 +02:00
Bård Skaflestad
3549d85d83
Merge pull request #4568 from totto82/2psolvent
Add gaswater solvent
2023-05-30 11:36:16 +02:00
Atgeirr Flø Rasmussen
e5672ee816
Merge pull request #4634 from kjetilly/cuistl_vector_matrix
Path to multigpu: Cuistl vector and matrix classes
2023-05-30 11:35:15 +02:00
Tor Harald Sandve
7cf3f69cf9 Add gaswater solvent
Fix some places that assumed 3p + solvent
2023-05-26 16:24:38 +02:00
Tor Harald Sandve
1592ef8bd2 solvent + foam simulator 2023-05-24 16:03:09 +02:00
Tor Harald Sandve
ee39117771 Add energy + precsalt simulator 2023-05-12 10:49:17 +02:00
Kjetil Olsen Lye
171a205125 Set gpu_cuda labels for cuistl tests. 2023-05-12 08:23:18 +02:00
Kjetil Olsen Lye
4600c4a126 Changed set_tests_properties to one call for cuistl. 2023-05-09 16:00:57 +02:00
Kjetil Olsen Lye
066e9ab39c Set gpu_cuda labels for CuISTL tests. 2023-05-09 15:49:00 +02:00
Arne Morten Kvarving
e28196f8af tag gpu tests with appropriate labels 2023-05-09 12:27:41 +02:00
Arne Morten Kvarving
5a9f010b1f fixed: conditionally use Development.XXX in python find module
the split into Development.Module and Development.Embed was is introduced in cmake 3.18
2023-05-02 09:18:57 +02:00
Arne Morten Kvarving
0b174cdf5a fixed: only search for Development.Module component for python
no embedding here
2023-04-27 12:37:10 +02:00
Tong Dong Qiu
a4cf50c1fc Move rocalution check to files_hook, because otherwise rocalutionSolverBackend.cpp is included before it is disabled 2023-04-06 13:14:19 +02:00
Tong Dong Qiu
9708a96501 Enable hipcc, works if other modules are compiled by clang++
Disable rocalution for hipcc/clang with rocm < 5.3
2023-04-06 13:14:19 +02:00
Tong Dong Qiu
675fab3534 Moved HIP config into config_hook.
Disabled hipcc as compiler.
2023-04-06 13:14:19 +02:00
Tong Dong Qiu
35ea8d7e30 Remove debug prints 2023-04-06 13:14:19 +02:00
Tong Dong Qiu
2c50951ddd Implement PR comments 2023-04-06 13:14:19 +02:00
Tong Dong Qiu
eaef4b8c85 Update CMakeLists for rocm 2023-04-06 13:14:19 +02:00