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. |