Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37843098
en ru br
Репозитории ALT

Группа :: Науки/Математика
Пакет: plapack

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

%define mpiimpl openmpi
%define mpidir %_libexecdir/%mpiimpl

%define somver 0
%define sover %somver.3.2
Name: plapack
Version: 3.2
Release: alt3
Summary: Parallel Linear Algebra Package (PLAPACK)
License: LGPL
Group: Sciences/Mathematics
Url: http://www.cs.utexas.edu/users/plapack/
Packager: Eugeny A. Rostovtsev (REAL) <real at altlinux.org>

Source: http://www.cs.utexas.edu/users/plapack/Downloads/PLAPACKR32.tar.gz
Source1: http://www.cs.utexas.edu/users/plapack/tutorial/tutorial_C.ps
Source2: http://www.cs.utexas.edu/users/plapack/tutorial/tutorial_FORTRAN.ps
Source3: LGPL

BuildPreReq: libsuperlu-devel %mpiimpl-devel
BuildPreReq: gcc-fortran liblapack-devel libatlas-devel
BuildPreReq: libibumad-devel libibverbs-devel

%description
PLAPACK: High Performance through High Level Abstraction.

Coding parallel algorithms is generally regarded as a formidable task. To make
this task manageable in the arena of linear algebra algorithms, we have
developed the Parallel Linear Algebra Package (PLAPACK), an infrastructure for
coding such algorithms at a high level of abstraction. It is often believed that
by raising the level of abstraction in this fashion, performance is sacrificed.
Throughout, we have maintained that indeed there is a performance penalty, but
that by coding at a higher level of abstraction, more sophisticated algorithms
can be implemented, which allows high levels of performance to be regained.

This package contains also testing executables. Run this by executing the
command (by example):

 mpirun -np 4 NAME_OF_EXEC_FILE

%package -n lib%name
Summary: Shared library of PLAPACK
Group: System/Libraries

%description -n lib%name
PLAPACK: High Performance through High Level Abstraction.

Coding parallel algorithms is generally regarded as a formidable task. To make
this task manageable in the arena of linear algebra algorithms, we have
developed the Parallel Linear Algebra Package (PLAPACK), an infrastructure for
coding such algorithms at a high level of abstraction. It is often believed that
by raising the level of abstraction in this fashion, performance is sacrificed.
Throughout, we have maintained that indeed there is a performance penalty, but
that by coding at a higher level of abstraction, more sophisticated algorithms
can be implemented, which allows high levels of performance to be regained.

This package contains shared library of PLAPACK.

%package -n lib%name-devel
Summary: Development files for PLAPACK
Group: Development/Other
Requires: libsuperlu-devel %mpiimpl-devel
Requires: gcc-fortran liblapack-devel libatlas-devel
Requires: libibumad-devel libibverbs-devel
Requires: lib%name = %version-%release
Conflicts: lib%name-devel < %version-%release
Obsoletes: lib%name-devel < %version-%release

%description -n lib%name-devel
PLAPACK: High Performance through High Level Abstraction.

Coding parallel algorithms is generally regarded as a formidable task. To make
this task manageable in the arena of linear algebra algorithms, we have
developed the Parallel Linear Algebra Package (PLAPACK), an infrastructure for
coding such algorithms at a high level of abstraction. It is often believed that
by raising the level of abstraction in this fashion, performance is sacrificed.
Throughout, we have maintained that indeed there is a performance penalty, but
that by coding at a higher level of abstraction, more sophisticated algorithms
can be implemented, which allows high levels of performance to be regained.

This package contains development files of PLAPACK.

%package -n lib%name-devel-static
Summary: Static library of PLAPACK
Group: Development/Other
Requires: lib%name-devel = %version-%release
Conflicts: lib%name-devel < %version-%release

%description -n lib%name-devel-static
PLAPACK: High Performance through High Level Abstraction.

Coding parallel algorithms is generally regarded as a formidable task. To make
this task manageable in the arena of linear algebra algorithms, we have
developed the Parallel Linear Algebra Package (PLAPACK), an infrastructure for
coding such algorithms at a high level of abstraction. It is often believed that
by raising the level of abstraction in this fashion, performance is sacrificed.
Throughout, we have maintained that indeed there is a performance penalty, but
that by coding at a higher level of abstraction, more sophisticated algorithms
can be implemented, which allows high levels of performance to be regained.

This package contains static library of PLAPACK.

%package doc
Summary: Documentation and examples for PLAPACK
Group: Development/Documentation
BuildArch: noarch

%description doc
PLAPACK: High Performance through High Level Abstraction.

Coding parallel algorithms is generally regarded as a formidable task. To make
this task manageable in the arena of linear algebra algorithms, we have
developed the Parallel Linear Algebra Package (PLAPACK), an infrastructure for
coding such algorithms at a high level of abstraction. It is often believed that
by raising the level of abstraction in this fashion, performance is sacrificed.
Throughout, we have maintained that indeed there is a performance penalty, but
that by coding at a higher level of abstraction, more sophisticated algorithms
can be implemented, which allows high levels of performance to be regained.

This package contains development documentation and examples for PLAPACK.

%prep
%setup
install %SOURCE3 .

%build
mpi-selector --set %mpiimpl
rm -f $(find ./ -name '*.o')
export LIBDIR=%_libdir
export HOME=$(pwd)
export MPIDIR=%mpidir
%make_build

# examples


for dir in Cholesky FORTRAN LINPACK LU QR; do
pushd EXAMPLES/$dir
%make_build
popd
done

%install
source %mpidir/bin/mpivars.sh

rm -f $(find ./ -name '*.o') EXAMPLES/Makefile
mv EXAMPLES/FORTRAN/LU_driver.x EXAMPLES/FORTRAN/LU_driver_FORTRAN.x
install -d %buildroot%_bindir
install -d %buildroot%_libdir
install -d %buildroot%_includedir/%name
install -d %buildroot%_docdir/%name/examples
install -m644 *.a %buildroot%_libdir
install -m755 $(find EXAMPLES -name '*.x') %buildroot%_bindir
rm -f $(find EXAMPLES -name '*.x')
cp -fR EXAMPLES/* %buildroot%_docdir/%name/examples/
install -p -m644 $(find ./ -name '*.h') %buildroot%_includedir/%name
install -m644 %SOURCE1 %SOURCE2 %buildroot%_docdir/%name

# shared library


pushd %buildroot%_libdir
mkdir tmp
pushd tmp
ar x ../libPLAPACK.a
mpif77 -shared * -llapack -llapack_atlas -lblas \
-Wl,-R%mpidir/lib \
-Wl,-soname,libPLAPACK.so.%somver -o ../libPLAPACK.so.%sover
rm -f *
popd
rmdir tmp
ln -s libPLAPACK.so.%sover libPLAPACK.so.%somver
ln -s libPLAPACK.so.%somver libPLAPACK.so
popd

%files
%doc header GNU_license LGPL
%_bindir/*

%files -n lib%name
%_libdir/*.so.*

%files -n lib%name-devel
%_libdir/*.so
%_includedir/*

%files -n lib%name-devel-static
%_libdir/*.a

%files doc
%_docdir/%name

%changelog

Полный changelog можно просмотреть здесь

 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin