Bug 448110
| Summary: | libatlas.so.3.0 contains 3DNow opcodes | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Dominic Dunlop <dominic.dunlop> | ||||
| Component: | atlas | Assignee: | Quentin Spencer <qspencer> | ||||
| Status: | CLOSED WONTFIX | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
| Severity: | medium | Docs Contact: | |||||
| Priority: | low | ||||||
| Version: | 9 | CC: | mbozzore | ||||
| Target Milestone: | --- | ||||||
| Target Release: | --- | ||||||
| Hardware: | x86_64 | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2009-07-14 16:12:53 UTC | Type: | --- | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Embargoed: | |||||||
| Attachments: |
|
||||||
|
Description
Dominic Dunlop
2008-05-23 15:01:54 UTC
Created attachment 306509 [details]
Tar archive of files mentioned in Description
I ran into a similar problem (linpack compiled with same version of atlas failing on "old" intel based servers)
It looks like something is wrong in the spec file; the following file (generated during rpmbuild) : /usr/src/redhat/BUILD/ATLAS/lib/Linux_base_static
contains (see the "Architecture identifying flags" section for example):
[root@dr08 Linux_base_static]# cat Make.inc
# -----------------------------
# Make.ARCH for ATLAS3.6.0
# -----------------------------
# ----------------------------------
# Make sure we get the correct shell
# ----------------------------------
SHELL = /bin/sh
# -------------------------------------------------
# Name indicating the platform to configure BLAS to
# -------------------------------------------------
ARCH = Linux_base_static
# -------------------
# Various directories
# -------------------
TOPdir = /usr/src/redhat/BUILD/ATLAS
INCdir = $(TOPdir)/include/$(ARCH)
SYSdir = $(TOPdir)/tune/sysinfo/$(ARCH)
GMMdir = $(TOPdir)/src/blas/gemm/$(ARCH)
UMMdir = $(GMMdir)
GMVdir = $(TOPdir)/src/blas/gemv/$(ARCH)
GR1dir = $(TOPdir)/src/blas/ger/$(ARCH)
L1Bdir = $(TOPdir)/src/blas/level1/$(ARCH)
L2Bdir = $(TOPdir)/src/blas/level2/$(ARCH)
L3Bdir = $(TOPdir)/src/blas/level3/$(ARCH)
TSTdir = $(TOPdir)/src/testing/$(ARCH)
AUXdir = $(TOPdir)/src/auxil/$(ARCH)
CBLdir = $(TOPdir)/interfaces/blas/C/src/$(ARCH)
FBLdir = $(TOPdir)/interfaces/blas/F77/src/$(ARCH)
BINdir = $(TOPdir)/bin/$(ARCH)
LIBdir = $(TOPdir)/lib/$(ARCH)
PTSdir = $(TOPdir)/src/pthreads
MMTdir = $(TOPdir)/tune/blas/gemm/$(ARCH)
MVTdir = $(TOPdir)/tune/blas/gemv/$(ARCH)
R1Tdir = $(TOPdir)/tune/blas/ger/$(ARCH)
L1Tdir = $(TOPdir)/tune/blas/level1/$(ARCH)
L3Tdir = $(TOPdir)/tune/blas/level3/$(ARCH)
# ---------------------------------------------------------------------
# Name and location of scripts for running executables during tuning
# ---------------------------------------------------------------------
ATLRUN = $(BINdir)/ATLrun.sh
ATLFWAIT = $(BINdir)/xatlas_waitfile
# ---------------------
# Libraries to be built
# ---------------------
ATLASlib = $(LIBdir)/libatlas.a
CBLASlib = $(LIBdir)/libcblas.a
F77BLASlib = $(LIBdir)/libf77blas.a
LAPACKlib = $(LIBdir)/liblapack.a
TESTlib = $(LIBdir)/libtstatlas.a
# -------------------------------------------
# Upper bound on largest cache size, in bytes
# -------------------------------------------
L2SIZE = -DL2SIZE=2097152
# ---------------------------------------
# Command setting up correct include path
# ---------------------------------------
INCLUDES = -I$(TOPdir)/include -I$(TOPdir)/include/$(ARCH) \
-I$(TOPdir)/include/contrib
# -------------------------------------------
# Defines for setting up F77/C interoperation
# -------------------------------------------
F2CDEFS = -DAdd_ -DStringSunStyle
# --------------------------------------
# Special defines for user-supplied GEMM
# --------------------------------------
UMMDEFS =
# ------------------------------
# Architecture identifying flags
# ------------------------------
ARCHDEFS = -DATL_OS_Linux -DATL_ARCH_HAMMER64 -DATL_SSE2 -DATL_SSE1 -DATL_GAS_x8664 -m64
# -------------------------------------------------------------------
# NM is the flag required to name a compiled object/executable
# OJ is the flag required to compile to object rather than executable
# These flags are used by all compilers.
# -------------------------------------------------------------------
NM = -o
OJ = -c
# ---------------------------------------------------------------------------
# Fortran 77 compiler and the flags to use. Presently, ATLAS does not itself
# use any Fortran 77, but vendor BLAS are typically written for Fortran, so
# any links that include non-ATLAS BLAS will use FLINKER instead of CLINKER
# ---------------------------------------------------------------------------
F77 = /usr/bin/gfortran
F77FLAGS = -O
FLINKER = $(F77)
FLINKFLAGS = $(F77FLAGS)
FCLINKFLAGS = $(FLINKFLAGS)
# ---------------------------------------------------------------------------
# Various C compilers, and the linker to be used when we are not linking in
# non-ATLAS BLAS (which usually necessitate using the Fortran linker).
# The C compilers recognized by ATLAS are:
# CC : Compiler to use to compile regular, non-generated code
# MCC : Compiler to use to compile generated, highly-optimized code
# XCC : Compiler to be used on the compile engine of a cross-compiler
# These will typically all be the same. An example of where this is not
# the case would be DEC ALPHA 21164, where you want to use gcc for MCC,
# because DEC's cc does not allow the programmer access to all 32 floating
# point registers. However, on normal C code, DEC's cc produces much faster
# code than gcc, so you CC set to cc. Of course, any system where you are
# cross-compiling, you will need to set XCC differently than CC & MCC.
# ---------------------------------------------------------------------------
CDEFS = $(L2SIZE) $(INCLUDES) $(F2CDEFS) $(ARCHDEFS) $(CONFIGDEFS)
GCCdir = /usr/bin
GOODGCC = /usr/bin/gcc
CC = /usr/bin/gcc
CCFLAG0 = -fomit-frame-pointer -O -mfpmath=387 -m64
CCFLAGS = $(CDEFS) $(CCFLAG0)
MCC = /usr/bin/gcc
MMFLAGS = -fomit-frame-pointer -O -mfpmath=387 -m64
XCC = /usr/bin/gcc
XCCFLAGS = $(CDEFS) -fomit-frame-pointer -O -mfpmath=387 -m64
CLINKER = $(CC)
CLINKFLAGS = $(CCFLAGS)
BC = $(CC)
BCFLAGS = $(CCFLAGS)
ARCHIVER = ar
ARFLAGS = r
RANLIB = echo
# -------------------------------------
# tar, gzip, gunzip, and parallel make
# -------------------------------------
TAR = /bin/tar
GZIP = /bin/gzip
GUNZIP = /bin/gunzip
PMAKE = $(MAKE) -j 2
# ------------------------------------
# Reference and system libraries
# ------------------------------------
BLASlib =
FBLASlib =
FLAPACKlib = /usr/lib64/liblapack.a
LIBS = -lm
# ----------------------------------------------------------
# ATLAS install resources (include arch default directories)
# ----------------------------------------------------------
ARCHDEF = $(TOPdir)/CONFIG/ARCHS/HAMMER64SSE2/gcc/misc
MMDEF = $(TOPdir)/CONFIG/ARCHS/HAMMER64SSE2/gcc/gemm
INSTFLAGS =
# ---------------------------------------
# Generic targets needed by all makefiles
# ---------------------------------------
waitfile:
and for example, in : /usr/src/redhat/BUILD/ATLAS/src/blas/gemm/Linux_base_static/KERNEL/ATL_dupKBmm47_1_1_b1.c
# SSE2 register usage shown be these defines
#
#define rA0 %xmm0
#define rB0 %xmm1
#define rC0 %xmm2
#define rC1 %xmm3
#define rC2 %xmm4
#define rC3 %xmm5
#define rC4 %xmm6
#define rC5 %xmm7
#define rC6 %xmm8
#define rC7 %xmm9
#define rC8 %xmm10
#define rC9 %xmm11
#define rC10 %xmm12
#define rC11 %xmm13
#define rC12 %xmm14
#define rC13 %xmm15
#
# Prefetch defines
#
#if 1
#define pref2(mem) prefetcht1 mem
#define prefB(mem) prefetcht0 mem
#define prefC(mem) prefetchw mem
#else
#define pref2(mem)
#define prefB(mem)
#define prefC(mem)
#endif
.text
.global ATL_AUSERMM
ATL_AUSERMM:
#
# Save callee-saved iregs
#
movq %rbp, -8(%rsp)
movq %rbx, -16(%rsp)
# movq %r12, -32(%rsp)
# movq %r13, -40(%rsp)
#ifdef BETAX
#define BOF -24
movlpd %xmm1, BOF(%rsp)
#endif
#
# pA already comes in right reg
# Initialize pB = B; pC = C;
#
movq 16(%rsp), pC
prefC((pC))
prefC(64(pC))
movq %r9, pB
prefB((pB))
prefB(64(pB))
#
#
# setup prefetch ptr for next blk of A
#
And in the rpmbuild logs (expect part): If you have problems during configure or installation, consult the file 'ATLAS/README/TroubleShoot.txt'. Are you ready to continue? [y]: ^JProbing to make operating system determination: Operating system configured as Linux Probing for architecture: Enter your machine type: 1. Other/UNKNOWN 2. 32 bit AMD Hammer 3. 64 bit AMD Hammer Enter machine number [3]: ^JArchitecture is set to HAMMER64 The safe approach is probably to build on a horrible old system with a lowest-common-denominator set of features like this ancient Celeron-based laptop: $ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 8 model name : Celeron (Coppermine) stepping : 10 cpu MHz : 1002.300 cache size : 128 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr sse up bogomips : 2006.02 The result should be a binary that will run (well, jog) on anything. Yes, that should work, but what will be the benefit then , in terms of performance ? Let say you have a system with the latest and greatest cpu and you bench this version of atlas vs a standard recompiled blas ... With the latest stable version (3.8.2), I am able to generate a Make.inc containing the arch I want, so looks like the next step is to recompile everything check the lib and bench it ... then package it. [mbozzore@tyan04 test]$ ../ATLAS/configure -A 17 In the generated Make.inc on a core2duo: # ------------------------------ # Architecture identifying flags # ------------------------------ ARCHDEFS = -DATL_OS_Linux -DATL_ARCH_P4E -DATL_CPUMHZ=2659 -DATL_SSE3 -DATL_SSE2 -DATL_SSE1 -DATL_USE64BITS -DATL_GAS_x8664 # ------------------------------------------------- # Name indicating the platform to configure BLAS to # ------------------------------------------------- ARCH = P4E64SSE3 And on a AMD box : (extra -Si cputhrchk 0 flag needed to bypass the CPU throttle probe: this is just a test ) # ------------------------------ # Architecture identifying flags # ------------------------------ ARCHDEFS = -DATL_OS_Linux -DATL_ARCH_P4E -DATL_CPUMHZ=1000 -DATL_SSE3 -DATL_SSE2 -DATL_SSE1 -DATL_3DNow -DATL_USE64BITS -DATL_GAS_x8664 # ------------------------------------------------- # Name indicating the platform to configure BLAS to # ------------------------------------------------- ARCH = P4E64SSE3 And removing the -DATL_3DNow flag on the AMD box looks ok : no prefetchw in the .a files [mbozzore@tyan04 test]$ objdump -d lib/*.a | grep prefetchw [mbozzore@tyan04 test]$ ls -alh lib/*.a -rw-rw-r-- 1 mbozzore mbozzore 8.2M Sep 18 10:02 lib/libatlas.a -rw-rw-r-- 1 mbozzore mbozzore 416K Sep 18 09:59 lib/libcblas.a -rw-rw-r-- 1 mbozzore mbozzore 540K Sep 18 10:02 lib/libf77blas.a -rw-rw-r-- 1 mbozzore mbozzore 478K Sep 18 10:02 lib/liblapack.a -rw-rw-r-- 1 mbozzore mbozzore 417K Sep 18 10:02 lib/libptcblas.a -rw-rw-r-- 1 mbozzore mbozzore 540K Sep 18 10:02 lib/libptf77blas.a -rw-rw-r-- 1 mbozzore mbozzore 451K Sep 18 09:39 lib/libtstatlas.a make check looks ok This fixed my problem (linpack failing on nodes / specific cpu) so I guess the next step is repackage and do a full reg test. First draft; what do you think ?
[mbozzore@stakhanov hpc]$ cat SPECS/atlas.spec
%define debug_package %{nil}
%define _atlas_pkg ATLAS
%define _atlas_builddir_static %{_atlas_pkg}_static
%define _atlas_builddir_shared %{_atlas_pkg}_shared
%define _soversionmajor 3
%define _soversionminor 0
Name: atlas
Version: 3.8.2
Release: 1
Summary: Automatically Tuned Linear Algebra Software
Group: System Environment/Libraries
License: BSD
URL: http://math-atlas.sourceforge.net
Source0: %{name}%{version}.tar.bz2
ExclusiveArch: x86_64
Requires: %{_sysconfdir}/ld.so.conf.d
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
Requires: gawk
Requires: grep
Requires: coreutils
Requires: util-linux
BuildRequires: gcc-gfortran gcc
%description
The ATLAS (Automatically Tuned Linear Algebra Software) project is an
ongoing research effort focusing on applying empirical techniques in
order to provide portable performance. At present, it provides C and
Fortran77 interfaces to a portably efficient BLAS implementation, as
well as a few routines from LAPACK.
The performance improvements in ATLAS are obtained largely via
compile-time optimizations and tend to be specific to a given hardware
configuration. In order to package ATLAS for Fedora some compromises
are necessary so that good performance can be obtained on a variety
of hardware. This set of ATLAS binary packages is therefore not
necessarily optimal for any specific hardware configuration. However,
the source package can be used to compile customized ATLAS packages;
see the documentation for information.
%package devel
Summary: Development libraries for ATLAS
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
%description devel
This package contains the static libraries and headers for development
with ATLAS (Automatically Tuned Linear Algebra Software).
##############
#%if "%{?enable_custom_atlas}" == "1"
# This flag enables building customized ATLAS libraries with all
# compile-time optimizations. Note that compilation will take a very
# long time, and that the resulting binaries are not guaranteed to
# work well or even at all on other hardware.
#%define archt %{_arch}
#%define types custom
#%package custom
#Summary: Custom-compiled ATLAS libraries
#Group: System Environment/Libraries
#%description custom
#This package contains the ATLAS (Automatically Tuned Linear Algebra
#Software) libraries compiled with all compile-time optimizations enabled.
#%package custom-devel
#Summary: Development libraries for ATLAS with AltiVec extensions
#Group: Development/Libraries
#Requires: %{name}-custom = %{version}-%{release}
#%description custom-devel
#This package contains headers and static versions of the ATLAS
#(Automatically Tuned Linear Algebra Software) libraries compiled with
#all compile-time optimizations enabled.
#%endif
#################
%prep
%setup -c -T
%build
# Step 1a - Build ATLAS (static lib)
cp %{SOURCE0} .
tar -xjf %{name}%{version}.tar.bz2
cd ATLAS
mkdir -p %{_atlas_builddir_static}
( cd %{_atlas_builddir_static};
../configure -A 17 -Si cputhrchk 0
# remove 3DNow opt, if it was detected (amd build machine)
sed -i -e 's/-DATL_3DNow//g' Make.inc
make build;
make check;
make time;
)
# Step 1b - Build ATLAS (shared lib)
mkdir -p %{_atlas_builddir_shared}
( cd %{_atlas_builddir_shared};
../configure -A 17 -Fa alg -fPIC -Si cputhrchk 0
# remove 3DNow opt, if it was detected (amd build machine)
sed -i -e 's/-DATL_3DNow//g' Make.inc
make build;
make check;
make time;
cd lib;
make shared;
for lib in libatlas.so liblapack.so libf77blas.so libcblas.so; do
mv $lib ${lib}.%{_soversionmajor}.%{_soversionminor}
ln -s ${lib}.%{_soversionmajor}.%{_soversionminor} \
${lib}.%{_soversionmajor}
ln -s ${lib}.%{_soversionmajor}.%{_soversionminor} ${lib}
done
)
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/%{name}
mkdir -p $RPM_BUILD_ROOT%{_includedir}/%{name}
mkdir -p $RPM_BUILD_ROOT%{_libdir}/%{name}
mkdir -p $RPM_BUILD_ROOT%{_defaultdocdir}/%{name}-%{version}
cd ATLAS/%{_atlas_builddir_shared}
make install
cd ..
cp -a include/*.h $RPM_BUILD_ROOT%{_includedir}/%{name}
cp -a doc/* $RPM_BUILD_ROOT%{_defaultdocdir}/%{name}-%{version}
echo "%{_libdir}/%{name}" > $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/%{name}.conf
( cd %{_atlas_builddir_static};
cp -a lib/*.a $RPM_BUILD_ROOT%{_libdir}/%{name}
)
( cd %{_atlas_builddir_shared};
cp -a lib/*.so* $RPM_BUILD_ROOT%{_libdir}/%{name}
)
%files
%defattr(-,root,root,-)
%dir %{_libdir}/%{name}
%{_libdir}/%{name}/*.so.*
%{_sysconfdir}/ld.so.conf.d/%{name}.conf
%files devel
%defattr(-,root,root,-)
%dir %{_libdir}/%{name}
%{_defaultdocdir}/%{name}-%{version}
#%{_libdir}/%{name}_*/*.so
%{_libdir}/%{name}/*.a
%{_includedir}/%{name}
%post
/sbin/ldconfig
%postun
/sbin/ldconfig
%clean
rm -rf $RPM_BUILD_ROOT
%changelog
* Wed Sep 24 2008 Mehdi Bozzo-Rey <mbozzore> 3.8.2-1
- restart from scratch with the latest stable version and fix bugzilla 448110 (for decent x86_64 arch)
TEST: from the build log (mock):
SCOPING FOR FAILURES IN CBLAS TESTS:
fgrep -e fault -e FAULT -e error -e ERROR -e fail -e FAIL \
interfaces/blas/C/testing/sanity.out | \
fgrep -v PASSED
make[1]: [sanity_test] Error 1 (ignored)
DONE
SCOPING FOR FAILURES IN F77BLAS TESTS:
fgrep -e fault -e FAULT -e error -e ERROR -e fail -e FAIL \
interfaces/blas/F77/testing/sanity.out | \
fgrep -v PASSED
make[1]: [sanity_test] Error 1 (ignored)
DONE
DONE BUILDING TESTERS, RUNNING:
SCOPING FOR FAILURES IN BIN TESTS:
fgrep -e fault -e FAULT -e error -e ERROR -e fail -e FAIL \
bin/sanity.out
8 cases: 8 passed, 0 skipped, 0 failed
4 cases: 4 passed, 0 skipped, 0 failed
8 cases: 8 passed, 0 skipped, 0 failed
4 cases: 4 passed, 0 skipped, 0 failed
8 cases: 8 passed, 0 skipped, 0 failed
4 cases: 4 passed, 0 skipped, 0 failed
8 cases: 8 passed, 0 skipped, 0 failed
4 cases: 4 passed, 0 skipped, 0 failed
DONE
SCOPING FOR FAILURES IN CBLAS TESTS:
fgrep -e fault -e FAULT -e error -e ERROR -e fail -e FAIL \
interfaces/blas/C/testing/sanity.out | \
fgrep -v PASSED
make[1]: [sanity_test] Error 1 (ignored)
DONE
SCOPING FOR FAILURES IN F77BLAS TESTS:
fgrep -e fault -e FAULT -e error -e ERROR -e fail -e FAIL \
interfaces/blas/F77/testing/sanity.out | \
fgrep -v PASSED
make[1]: [sanity_test] Error 1 (ignored)
DONE
and installing the rpm on the same machine I was able to see the failure:
Old rpm:
[mbozzore@dr08 mpich1]$ ./xhpl
============================================================================
HPLinpack 1.0a -- High-Performance Linpack benchmark -- January 20, 2004
Written by A. Petitet and R. Clint Whaley, Innovative Computing Labs., UTK
============================================================================
An explanation of the input/output parameters follows:
T/V : Wall time / encoded variant.
N : The order of the coefficient matrix A.
NB : The partitioning blocking factor.
P : The number of process rows.
Q : The number of process columns.
Time : Time in seconds to solve the linear system.
Gflops : Rate of execution for solving the linear system.
The following parameter values will be used:
N : 5000 29 30 34
NB : 80
PMAP : Row-major process mapping
P : 1
Q : 1
PFACT : Left
NBMIN : 2
NDIV : 2
RFACT : Left
BCAST : 1ring
DEPTH : 0
SWAP : Mix (threshold = 64)
L1 : transposed form
U : transposed form
EQUIL : yes
ALIGN : 8 double precision words
----------------------------------------------------------------------------
- The matrix A is randomly generated for each test.
- The following scaled residual checks will be computed:
1) ||Ax-b||_oo / ( eps * ||A||_1 * N )
2) ||Ax-b||_oo / ( eps * ||A||_1 * ||x||_1 )
3) ||Ax-b||_oo / ( eps * ||A||_oo * ||x||_oo )
- The relative machine precision (eps) is taken to be 1.110223e-16
- Computational tests pass if scaled residuals are less than 16.0
p0_6934: p4_error: interrupt SIGx: 4
[mbozzore@dr08 mpich1]$ ldd xhpl
libf77blas.so.3 => /usr/lib64/atlas/libf77blas.so.3 (0x00002b84cbf89000)
libatlas.so.3 => /usr/lib64/atlas/libatlas.so.3 (0x00002b84cc1a5000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x000000350b800000)
librt.so.1 => /lib64/librt.so.1 (0x000000350c000000)
libgfortran.so.1 => /usr/lib64/libgfortran.so.1 (0x00002b84ccb45000)
libm.so.6 => /lib64/libm.so.6 (0x000000350b000000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x000000351ae00000)
libc.so.6 => /lib64/libc.so.6 (0x000000350ac00000)
/lib64/ld-linux-x86-64.so.2 (0x000000350a800000)
[mbozzore@dr08 mpich1]$ rpm -aq | grep atlas
atlas-3.6.0-12.el5
atlas-devel-3.6.0-12.el5
New rpm:
[mbozzore@dr08 mpich1]$ rpm -qa | grep atlas
atlas-3.8.2-1
[mbozzore@dr08 mpich1]$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64/atlas/
[mbozzore@dr08 mpich1]$ ldd ./xhpl
libf77blas.so.3 => /usr/lib64/atlas/libf77blas.so.3 (0x00002b632421e000)
libatlas.so.3 => /usr/lib64/atlas/libatlas.so.3 (0x00002b632443b000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x000000350b800000)
librt.so.1 => /lib64/librt.so.1 (0x000000350c000000)
libgfortran.so.1 => /usr/lib64/libgfortran.so.1 (0x00002b63249dd000)
libm.so.6 => /lib64/libm.so.6 (0x000000350b000000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x000000351ae00000)
libc.so.6 => /lib64/libc.so.6 (0x000000350ac00000)
/lib64/ld-linux-x86-64.so.2 (0x000000350a800000)
[mbozzore@dr08 mpich1]$ ./xhpl
============================================================================
HPLinpack 1.0a -- High-Performance Linpack benchmark -- January 20, 2004
Written by A. Petitet and R. Clint Whaley, Innovative Computing Labs., UTK
============================================================================
An explanation of the input/output parameters follows:
T/V : Wall time / encoded variant.
N : The order of the coefficient matrix A.
NB : The partitioning blocking factor.
P : The number of process rows.
Q : The number of process columns.
Time : Time in seconds to solve the linear system.
Gflops : Rate of execution for solving the linear system.
The following parameter values will be used:
N : 5000 29 30 34
NB : 80
PMAP : Row-major process mapping
P : 1
Q : 1
PFACT : Left
NBMIN : 2
NDIV : 2
RFACT : Left
BCAST : 1ring
DEPTH : 0
SWAP : Mix (threshold = 64)
L1 : transposed form
U : transposed form
EQUIL : yes
ALIGN : 8 double precision words
----------------------------------------------------------------------------
- The matrix A is randomly generated for each test.
- The following scaled residual checks will be computed:
1) ||Ax-b||_oo / ( eps * ||A||_1 * N )
2) ||Ax-b||_oo / ( eps * ||A||_1 * ||x||_1 )
3) ||Ax-b||_oo / ( eps * ||A||_oo * ||x||_oo )
- The relative machine precision (eps) is taken to be 1.110223e-16
- Computational tests pass if scaled residuals are less than 16.0
============================================================================
T/V N NB P Q Time Gflops
----------------------------------------------------------------------------
WR00L2L2 5000 80 1 1 19.32 4.314e+00
----------------------------------------------------------------------------
||Ax-b||_oo / ( eps * ||A||_1 * N ) = 0.0355591 ...... PASSED
||Ax-b||_oo / ( eps * ||A||_1 * ||x||_1 ) = 0.0234744 ...... PASSED
||Ax-b||_oo / ( eps * ||A||_oo * ||x||_oo ) = 0.0045822 ...... PASSED
============================================================================
T/V N NB P Q Time Gflops
----------------------------------------------------------------------------
----------------------------------------------------------------------------
||Ax-b||_oo / ( eps * ||A||_1 * N ) = 0.0975040 ...... PASSED
||Ax-b||_oo / ( eps * ||A||_1 * ||x||_1 ) = 0.0751081 ...... PASSED
||Ax-b||_oo / ( eps * ||A||_oo * ||x||_oo ) = 0.0251828 ...... PASSED
============================================================================
T/V N NB P Q Time Gflops
----------------------------------------------------------------------------
----------------------------------------------------------------------------
||Ax-b||_oo / ( eps * ||A||_1 * N ) = 0.0413537 ...... PASSED
||Ax-b||_oo / ( eps * ||A||_1 * ||x||_1 ) = 0.0497874 ...... PASSED
||Ax-b||_oo / ( eps * ||A||_oo * ||x||_oo ) = 0.0177425 ...... PASSED
============================================================================
T/V N NB P Q Time Gflops
----------------------------------------------------------------------------
----------------------------------------------------------------------------
||Ax-b||_oo / ( eps * ||A||_1 * N ) = 0.3621940 ...... PASSED
||Ax-b||_oo / ( eps * ||A||_1 * ||x||_1 ) = 0.0548972 ...... PASSED
||Ax-b||_oo / ( eps * ||A||_oo * ||x||_oo ) = 0.0143985 ...... PASSED
============================================================================
Finished 4 tests with the following results:
4 tests completed and passed residual checks,
0 tests completed and failed residual checks,
0 tests skipped because of illegal input values.
----------------------------------------------------------------------------
End of Tests.
============================================================================
This message is a reminder that Fedora 9 is nearing its end of life. Approximately 30 (thirty) days from now Fedora will stop maintaining and issuing updates for Fedora 9. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as WONTFIX if it remains open with a Fedora 'version' of '9'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version prior to Fedora 9's end of life. Bug Reporter: Thank you for reporting this issue and we are sorry that we may not be able to fix it before Fedora 9 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora please change the 'version' of this bug to the applicable version. If you are unable to change the version, please add a comment here and someone will do it for you. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete. The process we are following is described here: http://fedoraproject.org/wiki/BugZappers/HouseKeeping Fedora 9 changed to end-of-life (EOL) status on 2009-07-10. Fedora 9 is no longer maintained, which means that it will not receive any further security or bug fix updates. As a result we are closing this bug. If you can reproduce this bug against a currently maintained version of Fedora please feel free to reopen this bug against that version. Thank you for reporting this bug and we are sorry it could not be fixed. |