Difference between revisions of "Applications/Hypre"

From HPC
Jump to: navigation , search
m
m (Further Information)
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
__TOC__
 
__TOC__
 +
 
==Application Details==
 
==Application Details==
 
*Description: a software library of high performance preconditioners and solvers for the solution of large, sparse linear systems of equations on massively parallel computers
 
*Description: a software library of high performance preconditioners and solvers for the solution of large, sparse linear systems of equations on massively parallel computers
 
*Version: 2.11.0 (compiled with intel)
 
*Version: 2.11.0 (compiled with intel)
 
*Module: hypre/intel/2.11.0 and hypre/intel/2.11.0b
 
*Module: hypre/intel/2.11.0 and hypre/intel/2.11.0b
*Licence: GNU
+
*Licence: GNU Lesser General Public License
  
 
==Usage Examples==
 
==Usage Examples==
Line 18: Line 19:
 
===Compilation===
 
===Compilation===
  
''hypre'' is a library s it, or it could be required at compilation time also.
+
''hypre'' is a library (required at compilation time).
  
 
A typical C++ code snippet requiring '''hypre''' (source Github)  is shown below:
 
A typical C++ code snippet requiring '''hypre''' (source Github)  is shown below:
Line 67: Line 68:
 
</pre>
 
</pre>
  
The module provides the library 'libHYPRE.a' and the include files
+
The module provides the library 'libHYPRE.a' and the include files:
  
 
_hypre_IJ_mv.h
 
_hypre_IJ_mv.h
Line 147: Line 148:
 
==Further Information==
 
==Further Information==
  
* [https://github.com/LLNL/hypre/ https://github.com/LLNL/hypre]
+
* [https://computing.llnl.gov/projects/hypre-scalable-linear-solvers-multigrid-methods https://computing.llnl.gov/projects/hypre-scalable-linear-solvers-multigrid-methods]
  
{|
+
{{Librariespagenav}}
|style="width:5%; border-width: 0" | [[File:icon_home.png]]
 
|style="width:95%; border-width: 0" |
 
* [[Main_Page|Home]]
 
* [[Applications|Application support]]
 
* [[General|General]]
 
* [[Training|Training]]
 
* [[Programming|Programming support]]
 
|-
 
|}
 

Latest revision as of 11:06, 16 November 2022

Application Details

  • Description: a software library of high performance preconditioners and solvers for the solution of large, sparse linear systems of equations on massively parallel computers
  • Version: 2.11.0 (compiled with intel)
  • Module: hypre/intel/2.11.0 and hypre/intel/2.11.0b
  • Licence: GNU Lesser General Public License

Usage Examples

hypre, a software library of high performance pre conditioners and solvers for the solution of large, sparse linear systems of equations on massively parallel computers. The hypre library was created with the primary goal of providing users with advanced parallel pre conditioners. The library features parallel multi-grid solvers for both structured and unstructured grid problems. For ease of use, these solvers are accessed from the application code via hypre’s conceptual linear system interfaces, which allow a variety of natural problem descriptions.

Module

[username@login01 ~]$ module add hypre/intel/2.11.0

Compilation

hypre is a library (required at compilation time).

A typical C++ code snippet requiring hypre (source Github) is shown below:


  Description:    This code solves a system corresponding to a discretization
                   of the Laplace equation -Delta u = 1 with zero boundary
                   conditions on the unit square.  The domain is split into
                   a n x n grid of quadrilateral elements and each processors
                   owns a horizontal strip of size m x n, where m = n/nprocs. We
                   use bilinear finite element discretization, so there are
                   nodes (vertices) that are shared between neighbouring
                   processors. The Finite Element Interface is used to assemble
                   the matrix and solve the problem. Nine different solvers are
                   available.
*/

#include <math.h>
#include <iostream>
#include <fstream>
#include "_hypre_utilities.h"
#include "LLNL_FEI_Impl.h"

using namespace std;

#include "vis.c"

int main(int argc, char *argv[])
{
   int i, j, k;

   int nprocs, mypid;

   int n, m, offset;
   double h;

   int solverID;
   int vis;

   // Initialize MPI
   MPI_Init(&argc, &argv);
   MPI_Comm_size(MPI_COMM_WORLD, &nprocs);
   MPI_Comm_rank(MPI_COMM_WORLD, &mypid);

...

The module provides the library 'libHYPRE.a' and the include files:

_hypre_IJ_mv.h _hypre_parcsr_ls.h _hypre_parcsr_mv.h _hypre_sstruct_ls.h _hypre_sstruct_mv.h _hypre_struct_ls.h _hypre_struct_mv.h _hypre_utilities.hlobpcg.h cfei.h cfei_hypre.h cfei-hypre.h Cnames.h colamd.h csr_block_matrix.h csr_matmultivec.h distributed_matrix.hhypre_cfei.h fei_bool.h fei_Data.hpp fei_defs.h fei_LinearSystemCore.hpp fei_Lookup.hpp fei_mpi.h fortran.h fortran_matrix.h HYPRE.h HYPRE_config.h HYPRE_DistributedMatrixPilutSolver_protos.h HYPRE_DistributedMatrixPilutSolver_types.h HYPRE_error_f.h HYPRE_FEI_includes.h hypre_hopscotch_hash.h HYPRE_IJ_mv.h HYPRE_krylov.h HYPRE_LinSysCore.h HYPRE_lobpcg.h HYPRE_matrix_matrix_protos.h HYPRE_MatvecFunctions.h HYPRE_parcsr_ls.h HYPRE_parcsr_mv.h HYPRE_seq_mv.h HYPRE_sstruct_ls.h HYPRE_sstruct_mv.h HYPRE_struct_ls.h HYPRE_struct_mv.h HYPRE_utilities.h HYPREf.h interpreter.h krylov.h LLNL_FEI_Fei.h LLNL_FEI_Impl.h LLNL_FEI_LSCore.h LLNL_FEI_Matrix.h LLNL_FEI_Solver.h multivector.h old_colamd.h par_csr_block_matrix.h par_csr_matmultivec.h par_csr_pmvcomm.h par_multivector.h seq_multivector.h seq_mv.h slu_cdefs.h slu_Cnames.h slu_dcomplex.h slu_ddefs.h slu_scomplex.h slu_sdefs.h slu_util.h slu_zdefs.h supermatrix.h temp_multivector.h



Further Information





Libraries | Main Page | Further Topics