Skip to content

Commit

Permalink
Release v0.3.0
Browse files Browse the repository at this point in the history
    Add GPU support via KBLAS+StarPU
    New application: acoustic wave scattering
    New application: mesh deformations
  • Loading branch information
Muxas committed Nov 21, 2020
1 parent 0714c92 commit 27df2d4
Show file tree
Hide file tree
Showing 177 changed files with 5,968 additions and 164 deletions.
40 changes: 38 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ include(FindPkgConfig)

# Create project and check C compiler
cmake_policy(SET CMP0048 NEW)
project(STARS-H VERSION 0.1.1 LANGUAGES C Fortran)
project(STARS-H VERSION 0.3.0 LANGUAGES C Fortran)

message(STATUS "Building ${PROJECT_NAME} ${PROJECT_VERSION}")

Expand All @@ -69,6 +69,12 @@ set(CMAKE_BUILD_TYPE Release CACHE STRING
option(OPENMP "Use OpenMP" ON)
option(MPI "Use MPI" ON)
option(STARPU "Use StarPU" ON)
# Since KBLAS does not support pkg-config, it is OFF by default, since user has
# to provide path by means of
# CFLAGS="-I/path/to/kblas/include -L/path/to/kblas/lib"
option(KBLAS "Use KBLAS" ON)
option(CUDA "Use CUDA" ON)
#set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -gencode arch=compute_70,code=sm_70")

# Option to force using parallel blas instead of sequential
option(USE_PARALLEL_BLAS "Prefer parallel blas libraries" OFF)
Expand Down Expand Up @@ -109,7 +115,7 @@ endif()
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
# the RPATH to be used when installing
#set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")

set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
# Packaging (make package)
#set(CPACK_PACKAGE_VERSION ${STARSH_VERSION})
#set(CPACK_GENERATOR "TGZ")
Expand Down Expand Up @@ -174,6 +180,25 @@ if(STARPU)
endif()
endif()

# KBLAS depends on CUDA
if(KBLAS)
set(CUDA ON)
endif()

# Check CUDA option
if(CUDA)
# If CUDA itself is available
if(CMAKE_CUDA_COMPILER)
enable_language(CUDA)
add_definitions("-DCUDA")
# If it is not available
else()
set(CUDA OFF)
# Also disable dependent KBLAS option
set(KBLAS OFF)
endif()
endif(CUDA)

# Check if GNU Scientific Library is available (for Matern kernel and
# Bessel function)
if(GSL)
Expand Down Expand Up @@ -306,6 +331,17 @@ if(BLA_VENDOR MATCHES "Intel")
add_definitions("-DMKL")
endif()

if(STARPU AND KBLAS)
add_definitions("-DKBLAS")
# find_package(MAGMA)
# if(MAGMA_FOUND)
# include_directories(${MAGMA_INCLUDE_DIRS})
# link_directories(${MAGMA_LIBRARY_DIRS})
# add_definitions("-DKBLAS")
# else()
# set(KBLAS OFF)
# endif()
endif()

###############################################################################
## PRINT CONFIGURATION ##
Expand Down
18 changes: 18 additions & 0 deletions Data.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Dataset

## Mesh Deformation Application

Dataset is available in KAUST repository: https://repository.kaust.edu.sa/handle/10754/664938.

DOI:10.25781/KAUST-V2EF2

## Acoustic Scattering Application

Dataset is available in KAUST repository: https://repository.kaust.edu.sa/handle/10754/664400.


DOI:10.25781/KAUST-I0634

For more information on the dataset please refer to the readme files in the data repositories.


1 change: 0 additions & 1 deletion Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -117,5 +117,4 @@ pipeline {
}
}
}

}
31 changes: 17 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,16 @@
What is STARS-H?
================

STARS-H is a **high performance parallel open-source** package of **Software
for Testing Accuracy, Reliability and Scalability of Hierarchical
computations**. It
provides a hierarchical matrix market in order to benchmark performance of
various libraries for hierarchical matrix compressions and computations
(including itself). **Why hierarchical matrices?** Because such matrices arise
in many PDEs and use much less memory, while requiring fewer flops for
computations. There are several hierarchical data formats, each one with its
own performance and memory footprint. STARS-H intends to provide a standard for
assessing accuracy and performance of hierarchical matrix libraries on a given
hardware architecture environment. STARS-H currently supports the tile low-rank
(TLR) data format for approximation on shared and distributed-memory systems,
using MPI, OpenMP and task-based programming models.
The Software for Testing Accuracy, Reliability and Scalability of Hierarchical (STARS-H)
computations is a parallel  library that provides a high performance matrix market of
rank structured matrix operators. STARS-H supports various matrix kernels that are
proxies for many scientific applications, and optionally compresses them by exploiting
their data sparsity. This translates into a lower arithmetic complexity and memory footprint.
STARS-H intends to provide a standard software environment for assessing accuracy and performance
of 𝓗-matrix libraries on a given hardware architecture. STARS-H currently supports
the tile low-rank (TLR) data format for approximation on shared and distributed-memory systems,
possibly equipped with GPUs, using MPI, OpenMP and task-based programming models.


Vision of STARS-H
=================
Expand Down Expand Up @@ -49,7 +46,7 @@ Applications in matrix-free form:
3. Electrodynamics (sin(kr)/r and cos(kr)/r)
4. Random synthetic TLR matrix
5. Spatial statistics (exponential, square exponential and matern kernels)
6. Mesh deformation using radial basis function (gaussian, exponential, inverse quadratic, inverse multi-quadratic, CPTS, and Wendland kernels)
6. Mesh deformation using radial basis functions, i.e., Gaussian, exponential, inverse quadratic, inverse multi-quadratic, CPTS, and Wendland kernels.
7. Acoustic scattering


Expand Down Expand Up @@ -138,5 +135,11 @@ and have additional steps on approximation of corresponding matrices.
*Important notice: the approximation phase does not require the entire dense matrix
to be stored, since matrix elements are computed on the fly.*

Dataset
========

Please see Data.md for information about dataset.



![Handout](docs/STARS-H-final.png)
2 changes: 1 addition & 1 deletion SARS-CoV-2-meshes/GeneratePopulation.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# @version 1.3.0
# @version 0.3.0

import pandas as pd
import numpy as np
Expand Down
2 changes: 1 addition & 1 deletion SARS-CoV-2-meshes/HierarchicalPopulationCluster.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# @version 1.3.0
# @version 0.3.0

import pandas as pd
import numpy as np
Expand Down
2 changes: 1 addition & 1 deletion VERSION.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.3.0
0.3.0
Binary file modified docs/STARS-H-final.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion examples/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# University of Science and Technology (KAUST)
#
# @file examples/CMakeLists.txt
# @version 1.3.0
# @version 0.3.0
# @author Aleksandr Mikhalev
# @date 2017-11-07

Expand Down
2 changes: 1 addition & 1 deletion examples/approximation/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# University of Science and Technology (KAUST)
#
# @file examples/approximation/CMakeLists.txt
# @version 1.3.0
# @version 0.3.0
# @author Aleksandr Mikhalev
# @date 2017-11-07

Expand Down
2 changes: 1 addition & 1 deletion examples/approximation/dense.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* University of Science and Technology (KAUST)
*
* @file examples/approximation/dense.c
* @version 1.3.0
* @version 0.3.0
* @author Aleksandr Mikhalev
* @date 2017-11-07
* */
Expand Down
2 changes: 1 addition & 1 deletion examples/approximation/minimal.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* University of Science and Technology (KAUST)
*
* @file examples/approximation/minimal.c
* @version 1.3.0
* @version 0.3.0
* @author Aleksandr Mikhalev
* @date 2017-11-07
* */
Expand Down
2 changes: 1 addition & 1 deletion examples/approximation/randtlr.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* University of Science and Technology (KAUST)
*
* @file examples/approximation/randtlr.c
* @version 1.3.0
* @version 0.3.0
* @author Aleksandr Mikhalev
* @date 2017-11-07
* */
Expand Down
2 changes: 1 addition & 1 deletion examples/approximation/spatial.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* University of Science and Technology (KAUST)
*
* @file examples/approximation/spatial.c
* @version 1.3.0
* @version 0.3.0
* @author Aleksandr Mikhalev
* @date 2017-11-07
* */
Expand Down
2 changes: 1 addition & 1 deletion examples/problem/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# University of Science and Technology (KAUST)
#
# @file examples/problem/CMakeLists.txt
# @version 1.3.0
# @version 0.3.0
# @author Aleksandr Mikhalev
# @date 2020-06-09

Expand Down
2 changes: 1 addition & 1 deletion examples/problem/acoustic.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* University of Science and Technology (KAUST)
*
* @file examples/problem/acoustic.c
* @version 1.3.0
* @version 0.3.0
* @auther Rabab Alomairy
* @author Aleksandr Mikhalev
* @date 2020-06-09
Expand Down
2 changes: 1 addition & 1 deletion examples/problem/dense.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* University of Science and Technology (KAUST)
*
* @file examples/problem/dense.c
* @version 1.3.0
* @version 0.3.0
* @author Aleksandr Mikhalev
* @date 2017-11-07
* */
Expand Down
2 changes: 1 addition & 1 deletion examples/problem/minimal.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* University of Science and Technology (KAUST)
*
* @file examples/problem/minimal.c
* @version 1.3.0
* @version 0.3.0
* @author Aleksandr Mikhalev
* @date 2017-11-07
* */
Expand Down
2 changes: 1 addition & 1 deletion examples/problem/particles.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* University of Science and Technology (KAUST)
*
* @file examples/problem/particles.c
* @version 1.3.0
* @version 0.3.0
* @author Aleksandr Mikhalev
* @date 2017-11-07
*/
Expand Down
2 changes: 1 addition & 1 deletion examples/problem/randtlr.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* University of Science and Technology (KAUST)
*
* @file examples/problem/randtlr.c
* @version 1.3.0
* @version 0.3.0
* @author Aleksandr Mikhalev
* @date 2017-11-07
* */
Expand Down
2 changes: 1 addition & 1 deletion examples/problem/rbf_cube.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* University of Science and Technology (KAUST)
*
* @file examples/problem/rbf_cube.c
* @version 1.3.0
* @version 0.3.0
* @auther Rabab Alomairy
* @author Aleksandr Mikhalev
* @date 2020-06-09
Expand Down
2 changes: 1 addition & 1 deletion examples/problem/rbf_virus.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* University of Science and Technology (KAUST)
*
* @file examples/problem/rbf_virus.c
* @version 1.3.0
* @version 0.3.0
* @auther Rabab Alomairy
* @author Aleksandr Mikhalev
* @date 2020-06-09
Expand Down
2 changes: 1 addition & 1 deletion examples/problem/spatial.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* University of Science and Technology (KAUST)
*
* @file examples/problem/spatial.c
* @version 1.3.0
* @version 0.3.0
* @author Aleksandr Mikhalev
* @date 2017-11-07
* */
Expand Down
2 changes: 1 addition & 1 deletion examples/problem/spatial_bivariate.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* University of Science and Technology (KAUST)
*
* @file examples/problem/spatial.c
* @version 1.3.0
* @version 0.3.0
* @author Aleksandr Mikhalev
* @date 2020-06-09
* */
Expand Down
2 changes: 1 addition & 1 deletion include/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# University of Science and Technology (KAUST)
#
# @file CMakeLists.txt
# @version 1.3.0
# @version 0.3.0
# @author Eduardo Gonzalez Fisher
# @author Aleksandr Mikhalev
# @date 2020-06-09
Expand Down
2 changes: 1 addition & 1 deletion include/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
* @cond
* This command in pair with endcond will prevent file from being documented.
*
* @version 1.3.0
* @version 0.3.0
* @author Aleksandr Mikhalev
* @date 2020-06-09
* */
Expand Down
Loading

0 comments on commit 27df2d4

Please sign in to comment.