diff options
-rw-r--r-- | README.md | 85 | ||||
-rwxr-xr-x | ur_optimize | 23 |
2 files changed, 84 insertions, 24 deletions
@@ -1,18 +1,42 @@ +# Why do I want to use ur_optimize? #
-#### ur_optimize ####
+The version of ATLAS bundled with Ureka (http://ssb.stsci.edu/ureka) is designed to work on a large number of CPUs, therefore certain operations requiring linear algebra may perform inadequately to your needs.
+`ur_optimize` rebuilds the underlying ATLAS/LaPACK/BLAS stack to be tailored for your CPU's architecture. After that, the NumPy/SciPy stack is recompiled and linked against the new ATLAS implementation in order to take advantage of these optimizations.
-### General Information ###
-Base installation medium: Ureka_linux-rhe5_64_1.4.1.tar.gz
+# License #
-## SYSTEM ##
+BSD
+
+
+# Requirements #
+
+### RHEL 6.0+ / Fedora 10+ ###
+```
+sudo yum install gcc gfortran
+```
+
+### Ubuntu 12.04+ ###
+```
+sudo apt-get install build-essential
+```
+
+
+# Testing ur_optimize #
+
+For this test I used the latest Ureka build (as of 09/04/2014):
+
+Ureka_linux-rhe5_64_1.4.1.tar.gz
+
+
+### SYSTEM ###
```
Manufacturer: Dell Inc.
Product Name: OptiPlex 790
```
-## BIOS ##
+### BIOS ###
```
Vendor: Dell Inc.
@@ -21,25 +45,25 @@ Release Date: 09/10/2011 ```
-## CPU ##
+### CPU ###
```
-vendor_id : GenuineIntel
-cpu family : 6
-model : 42
-model name : Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
-stepping : 7
-microcode : 0x29
-cpu MHz : 3399.867
-cache size : 8192 KB
-physical id : 0
-siblings : 8
-core id : 3
-cpu cores : 4
+vendor_id : GenuineIntel
+cpu family : 6
+model : 42
+model name : Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
+stepping : 7
+microcode : 0x29
+cpu MHz : 3399.867
+cache size : 8192 KB
+physical id : 0
+siblings : 8
+core id : 3
+cpu cores : 4
```
-## MEMORY INFORMATION ##
+### MEMORY INFORMATION ###
```
size : 16GB
type : DDR3
@@ -47,7 +71,7 @@ Mhz : 1333 ```
-### test_linalg.py module ###
+## test_linalg.py module ##
```
#!/usr/bin/env python
import numpy
@@ -75,9 +99,11 @@ if __name__ == "__main__": interpolate()
```
-### Performance Comparison ###
-## Before ur_optimize ##
+## Performance Comparison ##
+
+
+### Before ur_optimize ###
```
$ ipython
Python 2.7.5 (default, Jun 19 2014, 11:22:38)
@@ -99,7 +125,10 @@ quadratic... ok 1 loops, best of 3: 39 s per loop
```
-## After ur_optimize ##
+**39** seconds per operation.
+
+
+### After ur_optimize ###
```
$ ipython
@@ -120,4 +149,12 @@ quadratic... ok quadratic... ok
quadratic... ok
1 loops, best of 3: 1.17 s per loop
-```
\ No newline at end of file +```
+
+**1.17** seconds per operation.
+
+# Found a bug? #
+
+If ATLAS fails to compile for your architecture, please contact the developers of ATLAS, not me: http://math-atlas.sourceforge.net/faq.html#help
+
+Otherwise, feel free to submit a bug report on this project's issue tracker: http://bitbucket.org/jhunkeler/ur_optimize/issues
\ No newline at end of file diff --git a/ur_optimize b/ur_optimize index 2cf0339..9851f00 100755 --- a/ur_optimize +++ b/ur_optimize @@ -1,4 +1,27 @@ #!/bin/bash +# Copyright (c) 2014, Joseph Hunkeler <jhunkeler at gmail.com> +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + if [ ! -z "${UR_DIR}" ]; then echo "UREKA must not be active." exit 1 |