You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* updated doc for BUILD.sh and set RAJA and UMPIRE to OFF default values for the build system
* removed addToSymDenseMatrixUpperTriangle and documented transAddToSymDenseMatrixUpperTriangle
* added unit tests for addUpperTriangleToSymDenseMatrixUpperTriangle.
* updated README with minimal RAJA/UMPIRE information
* put assert / warnings in LA factory when mem space is not available
* GPU support: *-DHIOP_USE_GPU=ON*. MPI can be either off or on. For more build system options related to GPUs, see "Dependencies" section below.
24
+
* Use RAJA portability layer to allow running linear algebra in either host (CPU) or device (GPU): *-DHIOP_USE_RAJA=ON* and *-DHIOP_USE_UMPIRE=ON*. These build options are off by default. Currently, HiOp only supports unified memory space.
25
+
* Enable/disable "developer mode" build that enforces more restrictive compiler rules and guidelines: *-DHIOP_DEVELOPER_MODE=ON*. This option is by default off.
24
26
* Additional checks and self-diagnostics inside HiOp meant to detect anormalities and help to detect bugs and/or troubleshoot problematic instances: *-DHIOP_DEEPCHECKS=[ON/OFF]* (by default ON). Disabling HIOP_DEEPCHECKS usually provides 30-40% execution speedup in HiOp. For full strength, it is recomended to use HIOP_DEEPCHECKS with debug builds. With non-debug builds, in particular the ones that disable the assert macro, HIOP_DEEPCHECKS does not perform all checks and, thus, may overlook potential issues.
25
27
26
28
For example:
@@ -41,6 +43,8 @@ HiOp requires LAPACK and BLAS. These dependencies are automatically detected by
41
43
42
44
HiOp has some support for NVIDIA **GPU-based computations** via CUDA and Magma. To enable the use of GPUs, use cmake with '-DHIOP_USE_GPU=ON'. The build system will automatically search for CUDA Toolkit. For non-standard CUDA Toolkit installations, use '-DHIOP_CUDA_LIB_DIR=/path' and '-DHIOP_CUDA_INCLUDE_DIR=/path'. For "very" non-standard CUDA Toolkit installations, one can specify the directory of cuBlas libraries as well with '-DHIOP_CUBLAS_LIB_DIR=/path'.
43
45
46
+
When RAJA-based portability abstraction layer is enabled, HiOp requires RAJA and UMPIRE libraries
47
+
44
48
### Support for GPU computations
45
49
46
50
When GPU support is on, HiOp requires Magma and CUDA Toolkit. Both are detected automatically in most normal use. The typical cmake command to enable GPU support in HiOp is
A detailed example on how to compile HiOp straight of the box on `summit.olcf.ornl.gov` is available [here](README_summit.md).
69
73
74
+
RAJA and UMPIRE dependencies are usually detected by HiOp's cmake build system.
75
+
70
76
### Kron reduction
71
77
72
78
Kron reduction functionality of HiOp is disabled by default. One can enable it by using
@@ -85,7 +91,7 @@ HiOp supports two input formats: `hiopInterfaceDenseConstraints` and `hiopInterf
85
91
86
92
*`hiopInterfaceDenseConstraints` interface* supports NLPs with **billions** of variables with and without bounds but only limited number (<100) of general, equality and inequality constraints. The underlying algorithm is a limited-memory quasi-Newton interior-point method and generally scales well computationally (but it may not algorithmically) on thousands of cores. This interface uses MPI for parallelization
87
93
88
-
*`hiopInterfaceMDS` interface* supports mixed dense-sparse NLPs and achives parallelization using GPUs. Limited speed-up can be obtained on multi-cores CPUs via multithreaded MKL.
94
+
*`hiopInterfaceMDS` interface* supports mixed dense-sparse NLPs and achives parallelization using GPUs and RAJA portability abstraction layer.
89
95
90
96
More information on the HiOp interfaces are [here](src/Interface/README.md).
91
97
@@ -111,7 +117,8 @@ HiOp has been developed under the financial support of:
111
117
- Lawrence Livermore National Laboratory, through the LDRD program
112
118
113
119
# Copyright
114
-
Copyright (c) 2017, Lawrence Livermore National Security, LLC. All rights reserved. Produced at the Lawrence Livermore National Laboratory. LLNL-CODE-742473. Written by Cosmin G. Petra, [email protected].
120
+
Copyright (c) 2017, Lawrence Livermore National Security, LLC. All rights reserved. Produced at the Lawrence Livermore National Laboratory. LLNL-CODE-742473.
121
+
HiOp is written by Cosmin G. Petra ([email protected]) of LLNL and has received contributions from Slaven Peles (PNNL), Asher Mancinelli (PNNL), Jake K. Ryan (PNNL), Cameron Rutherford (PNNL), Nai-Yuan Chiang (LLNL), and Michel Schanen (ANL).
115
122
116
123
HiOp is free software; you can modify it and/or redistribute it under the terms of the BSD 3-clause license. See [COPYRIGHT](/COPYRIGHT) and [LICENSE](/LICENSE) for complete copyright and license information.
0 commit comments