aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md85
-rwxr-xr-xur_optimize23
2 files changed, 84 insertions, 24 deletions
diff --git a/README.md b/README.md
index ea3c83b..ff4fb33 100644
--- a/README.md
+++ b/README.md
@@ -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