Difference between revisions of "GNU Scientific Library (GSL)"
(Redirected page to GSL) (Tag: New redirect) |
|||
(6 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
+ | #REDIRECT[[GSL]] |
||
− | {| width=600px class="wikitable" |
||
− | |- |
||
− | ! Description !! Content |
||
− | |- |
||
− | | module load |
||
− | | numlib/gsl |
||
− | |- |
||
− | | Availability |
||
− | | [[bwUniCluster]] |
||
− | |- |
||
− | | License |
||
− | | [http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL)] |
||
− | |- |
||
− | |Citing |
||
− | | <small><small><pre>The recommended way is to cite the reference manual, |
||
− | e.g. M. Galassi et al, GNU Scientific Library Reference Manual |
||
− | (3rd Ed.), ISBN 0954612078.</pre></small></small> |
||
− | |- |
||
− | | Links |
||
− | | [http://www.gnu.org/software/gsl GSL-GNU Scientific Library Homepage] | [http://www.gnu.org/software/gsl/ Online-Documentation] |
||
− | |- |
||
− | | Graphical Interface |
||
− | | No |
||
− | |- |
||
− | |} |
||
− | <br> |
||
− | = Description = |
||
− | The '''GNU Scientific Library''' (or '''GSL''') is a software library for numerical computations in applied mathematics and science. The GSL is written in the C programming language, but bindings exist for other languages as well. |
||
− | <br> |
||
− | The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. |
||
− | <br> |
||
− | The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting. There are over 1000 functions in total with an extensive test suite. |
||
− | <br> |
||
− | <br> |
||
− | <u>The complete range of subject areas covered by the library includes</u> |
||
− | <br> |
||
− | • Complex Numbers • Roots of Polynomials • Special Functions • Vectors and Matrices • Permutations • Sorting • BLAS Support • Linear Algebra • Eigensystems • Fast Fourier Transforms • Quadrature • Random Numbers • Quasi-Random Sequences • Random Distributions • Statistics • Histograms • N-Tuples • Monte Carlo Integration • Simulated Annealing • Differential Equations • Interpolation • Numerical Differentiation • Chebyshev Approximation • Series Acceleration • Discrete Hankel Transforms • Root-Finding • Minimization • Least-Squares Fitting • Physical Constants • IEEE Floating-Point • Discrete Wavelet Transforms • Basis splines • Running Statistics • Sparse Matrices and Linear Algebra |
||
− | <br> |
||
− | <br> |
||
− | = Versions and Availability = |
||
− | A list of versions currently available on the bwForCluster Chemistry can be obtained from the |
||
− | <br><big> |
||
− | [https://cis-hpc.uni-konstanz.de/prod.cis/ Cluster Information System CIS] </big> |
||
− | {{#widget:Iframe |
||
− | |url=https://cis-hpc.uni-konstanz.de/prod.cis/bwUniCluster/numlib/gsl |
||
− | |width=99% |
||
− | |height=220 |
||
− | |border=0 |
||
− | }} |
||
− | <br> |
||
− | Show a list of available versions using 'module avail numlib/gsl' on any HPC-C5 cluster. |
||
− | <pre> |
||
− | : EXAMPLE bwUniCluster |
||
− | $ module avail numlib/gsl |
||
− | ------------------------ /opt/bwhpc/common/modulefiles ------------------------- |
||
− | numlib/gsl/1.16-gnu-4.4 numlib/gsl/1.16-intel-14.0 |
||
− | numlib/gsl/1.16-intel-13.1(default) |
||
− | </pre> |
||
− | <br> |
||
− | = Documentation = |
||
− | === Online === |
||
− | * [http://www.gnu.org/software/gsl/ Online-Documentation] |
||
− | === Local === |
||
− | * info gsl |
||
− | * man gsl |
||
− | * man gsl-config |
||
− | <br> |
||
− | = Tips for compiling and linking = |
||
− | == Loading the module == |
||
− | You can load the default version of the GSL library with the command<br> |
||
− | 'module load numlib/gsl'. |
||
− | <br> |
||
− | The module will try to load modules it needs to function. |
||
− | If loading the module fails, check if you have already loaded one of those modules with the command 'module list'. |
||
− | <br> |
||
− | If you wish to load a specific (older) version (if available), you can do so using e.g. |
||
− | ' module load numlib/gsl/'version' to load the version you desires. |
||
− | <pre> |
||
− | $ module avail numlib/gsl |
||
− | ------------------------ /opt/bwhpc/common/modulefiles ------------------------- |
||
− | numlib/gsl/1.16-gnu-4.4 numlib/gsl/1.16-intel-14.0 |
||
− | numlib/gsl/1.16-intel-13.1(default) |
||
− | $ module load numlib/gsl/1.16-gnu-4.4 |
||
− | $ module list |
||
− | Currently Loaded Modulefiles: |
||
− | 1) numlib/gsl/1.16-gnu-4.4 |
||
− | </pre> |
||
− | <br> |
||
− | = GSL-Specific Environments = |
||
− | To see a list of all GSL environments set by the 'module load'-command use 'env | grep GSL'. |
||
− | <br> |
||
− | Or use the command 'module show numlib/gsl'. |
||
− | <pre> |
||
− | $ module show numlib/gsl------------------------------------------------------------------- |
||
− | /opt/bwhpc/common/modulefiles/numlib/gsl/1.16-intel-13.1: |
||
− | GSL_VERSION = 1.16 |
||
− | GSL_HOME = /opt/bwhpc/common/numlib/gsl/1.16-intel-13.1 |
||
− | GSL_BIN_DIR = /opt/bwhpc/common/numlib/gsl/1.16-intel-13.1/bin |
||
− | GSL_INC_DIR = /opt/bwhpc/common/numlib/gsl/1.16-intel-13.1/include |
||
− | GSL_LIB_DIR = /opt/bwhpc/common/numlib/gsl/1.16-intel-13.1/lib |
||
− | GSL_STA_DIR = /opt/bwhpc/common/numlib/gsl/1.16-intel-13.1/lib |
||
− | GSL_SHA_DIR = /opt/bwhpc/common/numlib/gsl/1.16-intel-13.1/lib |
||
− | GSL_MAN_DIR = /opt/bwhpc/common/numlib/gsl/1.16-intel-13.1/share/man |
||
− | GSL_INF_DIR = /opt/bwhpc/common/numlib/gsl/1.16-intel-13.1/share/info |
||
− | GSL_DOC_DIR = /opt/bwhpc/common/numlib/gsl/1.16-intel-13.1/share/doc |
||
− | GSL_EXA_DIR = /opt/bwhpc/common/numlib/gsl/1.16-intel-13.1/share/doc/examples |
||
− | GSL_WWW http://www.gnu.org/software/gsl/ |
||
− | PATH = /opt/bwhpc/common/numlib/gsl/1.16-intel-13.1/bin:$PATH |
||
− | MANPATH = /opt/bwhpc/common/numlib/gsl/1.16-intel-13.1/share/man:$MANPATH |
||
− | INFOPATH = /opt/bwhpc/common/numlib/gsl/1.16-intel-13.1/share/info:$INFOPATH |
||
− | LD_LIBRARY_PATH = /opt/bwhpc/common/numlib/gsl/1.16-intel-13.1/lib:$LD_LIBRARY_PATH |
||
− | INCLUDE = /opt/bwhpc/common/numlib/gsl/1.16-intel-13.1/include:$INCLUDE |
||
− | [...] |
||
− | </pre> |
||
− | <br> |
||
− | = How To Use the Library = |
||
− | == Includes == |
||
− | Your source code should contain preprocessor include statements with a gsl/ prefix, such as |
||
− | <source lang="c">#include <gsl/gsl_math.h></source> |
||
− | == Compile == |
||
− | A typical compilation command for a source file example.c with the |
||
− | Intel C compiler icc is |
||
− | <pre> $ icc -Wall -I$GSL_INC_DIR -c example.c </pre> |
||
− | The [[#GSL-Specific Environments|$GSL_INC_DIR environment variable]] points to location of |
||
− | the include path for the gsl header files. |
||
− | <br> |
||
− | == Link == |
||
− | The following command can be used to link the application with the gsl libraries. |
||
− | <pre> $ icc -L$GSL_LIB_DIR -o example example.o -lgsl -lgslcblas -lm </pre> |
||
− | The [[#GSL-Specific Environments|$GSL_LIB_DIR environment]] variable points to the location |
||
− | of the gsl libraries. |
||
− | <br> |
||
− | Also make sure to have the GSL-module loaded before running applications build |
||
− | with this library. |
||
− | <br><br> |
||
− | = Example C-Source Code = |
||
− | == Create source code file 'intro.c' == |
||
− | <source lang="c"> |
||
− | #include <stdio.h> |
||
− | #include <gsl/gsl_sf_bessel.h> |
||
− | |||
− | int main (void) |
||
− | { |
||
− | double x = 5.0; |
||
− | double y = gsl_sf_bessel_J0 (x); |
||
− | printf ("J0(%g) = %.18e\n", x, y); |
||
− | return 0; |
||
− | } |
||
− | </source> |
||
− | <small>[https://www.gnu.org/software/gsl/manual/html_node/Special-Functions.html Bessel-Funktions and more]</small> |
||
− | <br> |
||
− | == Compile and Link == |
||
− | Load the GSL module for the Intel compiler, compile, link and run the program |
||
− | <pre> |
||
− | $ module load numlib/gsl/1.16-intel-13.1 |
||
− | Loading module dependency 'compiler/intel/13.1'. |
||
− | $ icc -Wall -I$GSL_INC_DIR -c intro.c |
||
− | $ icc -L$GSL_LIB_DIR -o intro intro.o -lgsl -lgslcblas -lm |
||
− | $ ./intro |
||
− | J0(5) = -1.775967713143382642e-01 |
||
− | </pre> |
||
− | |||
− | [[Category: Numerical libraries]][[Category:bwUniCluster]] |
Latest revision as of 22:25, 4 February 2022
Redirect to: