When: June 11th, 2014
Intel® is offering a free full-day technical deep-dive session focusing on optimizing power for Windows* based Intel mobile platforms, led by Intel power engineers. Course is designed for software, system and validation engineers. Introduction to Power Analysis and Impact of SoftwareGet an introduction to platform power profile showing component level distribution of total system power, basics of power optimization including background on SoC/processor/device states, wakeup analysis etc. Results from characterization of studies done on Intel® Atom™- and Intel® Core™-based platforms to evaluated software power impact running on Windows*, Android* and Chrome platforms. Power Deep DiveLearn about Windows and Android* power features including: idle resiliency, Connected Standby and power friendly applications. Session will include evaluation of API efficiencies both on Windows and Android platform (wakelocks etc.). Tools and Step-by-Step Idle Power Analysis MethodologyDiscover how to reduce system power consumption under idle and active conditions and conduct fine grain power tuning for applications up to mW level. See how to analyze the application traces and identify opportunities for fine grain power optimization on Intel® platforms. Several case studies on Media application, Video conferencing, ModernUI, Casual games, Intel® Perceptual computing and browsing apps will show fine grain power optimization techniques running on Android® and Windows using the power analysis & profiling tools. Fine Grain Power OptimizationDiscover how to reduce system power consumption for semi-active and active workloadsand conduct fine grain power tuning for applications up to mW level. See how to analyze the application traces and identify opportunities for fine grain power optimization on Intel® platforms. Case studies on Media application, Video conferencing, ModernUI, Casual games and browsing apps will show fine grain power optimization techniques. Hands On LabBring your own device with ~1GB of empty space (Core based with 3th or 4th Generation Processor) and learn how to debug your platform for Power using Intel Tools. Session will show quick way of validation your device for battery life. *Other names and brands may be claimed as the property of others.
|
Optimizing Battery Life on SOC Devices
Fast ISPC Texture Compressor - Update
This article and the attached sample code project were written by Marc Fauconneau Dufresne at Intel Corp.
This sample demonstrates a state of the art BC7 (DX11) Texture compressor. BC7 partitioning decisions are narrowed down in multiple stages. Final candidates are optimized using iterative endpoint refinement. All BC7 modes are supported. SIMD instruction sets are exploited using the Intel SPMD Compiler. Various quality/performance trade-offs are offered.
Dynamoid Apps Now Enables Users to Explore the Human Body Up Close with the Powers of Minus Ten App on Intel® Atom™ Tablets for Windows* 8.1.
The award-winning application brings the power of the microscope to the tablet.
Dynamoid Apps announced today that the award winning Powers of Minus Ten game is now available for download to Intel® Atom™ tablets for Windows* 8.1. Produced with funding from the National Science Foundation, this compelling game is the ideal introduction to the cell and key molecular processes for the future scientist.
Winner of a 2012 Best Serious Game award from Unity Technologies and a finalist for Best Interactive Game in the 2011 Science Visualization Challenge, this engaging app lets players experience biology first hand. Users can zoom in to view the cells and structure of the human skin or go even deeper to see the molecules and atoms that can be found inside.
Throughout the game’s development for Intel Atom tablets for Windows* 8.1, publishers at Dynamiod Apps took advantage of the support and resources available from the Intel® Developer Zone.
“We developed Powers of Minus Ten to help users discover the hidden worlds inside the human body,” says Laura Lynn Gonzalez, of Dynamoid Apps. “The power and flexibility of Intel Atom tablets for Windows* 8.1 offer an ideal platform for displaying the intricacies of cells, molecules, and atoms.”
Powers of Minus Ten by Dynamoid Apps is available for immediate download from Microsoft. http://apps.microsoft.com/windows/en-us/app/ed19ff91-e7c5-476c-b4a1-819172286bb1
About Dynamoid Apps
Dynamoid Apps specializes in creating games and apps based on accurate science content. They work with academic and commercial institutions to create innovative media for science communication. For more information, please visit its website at:http://www.dynamoidapps.com
About the Intel® Developer Zone
The Intel Developer Zone supports developers and software companies of all sizes and skill levels with technical communities, go-to-market resources and business opportunities. To learn more about becoming an Intel Software Partner, join the Intel Developer Zone.
Using Intel Compilers for Linux with Ubuntu
Navigation:
Linux and Mac OS X Compilers Installation Help Center: /en-us/articles/intel-compilers-linux-installation-help
First, determine your needs and get the right installation tarball. Most linux users are on 64bit systems with x86_64 versions of linux installed. Do you need to create older 32bit applications? If not, download the Intel 64 ONLY tarball, the *_intel64.tgz package. Not only does this save download time, this will eliminate your need to install 32bit libraries on the development system.
Ubuntu 14.04 and above
Ubuntu has deprecated the 32bit libraries. Packages for 32bit development are nearly impossible to find. YOU MUST INSTALL the Intel Compilers for 64bit Intel 64 ONLY.
Run the installer for the Intel compiler package (if you have a Studio package, see below for more info)
At Step 5 of 7, select custom installation:
Step 5 of 7 | Options > Pre-install Summary
--------------------------------------------------------------------------------
Install location:
/home/foo/intel/composer_xe_2013_sp1.3.174
Component(s) selected:
Intel(R) C++ Compiler XE 14.0 Update 3 531MB
Intel C++ Compiler XE
Intel(R) Debugger 13.0 477MB
Intel Debugger
Intel(R) Math Kernel Library 11.1 Update 3 1.9GB
Intel MKL core libraries
Intel(R) Xeon Phi(TM) coprocessor support
Fortran 95 interfaces for BLAS and LAPACK
GNU* Compiler Collection support
Intel(R) Integrated Performance Primitives 8.1 Update 1 2.8GB
Intel IPP single-threaded libraries
Intel(R) Threading Building Blocks 4.2 Update 4 77MB
Intel TBB
GNU* GDB 7.5 119MB
GNU* GDB 7.5 on Intel(R) 64 (Provided under GNU General Public License
v3)
GDB Eclipse* Integration on Intel(R) 64 (Provided under Eclipse Public
License v.1.0)
Install Space Required: 5.6GB
1. Start installation Now [default]
2. Customize installation
h. Help
b. Back to the previous menu
q. Quit
--------------------------------------------------------------------------------
Please type a selection or press "Enter" to accept default choice [1]: 2
Then, at
Step 5 of 7 | Options > Architecture selection
Target Architecture(s) of your applications:
--------------------------------------------------------------------------------
1. [x] IA-32
2. [x] Intel(R) 64
3. Finish architecture selection [default]
Note: This system is an Intel(R) 64 architecture system.
Your application may be built to run on either IA-32 or Intel(R) 64
architectures.
b. Back to the previous menu
q. Quit
--------------------------------------------------------------------------------
Please type a selection or press "Enter" to accept default choice [3]: 1
By selection "1" you DE-SELECT IA-32 packages and support. Do this, de-select "IA-32" and continue with the installation.
INTEL STUDIO XE users: you must download all component packages individually and install individually. The Studio XE installer does not allow you to de-select 32bit packages.
rev history:
November 2012: Ubuntu 12.xx and Intel 13.0.0.079 (Composer XE 2013 initial release) URGENT, Installation will fail without a manual change
Ubu 12.0x changed the link for /bin/sh from /bin/bash to /bin/dash. Intel installation scripts for 13.0.0.079 reference /bin/sh BUT assume/require this is bourne or bash (sh or bash) but are NOT compatible with dash. To get around this problem, do the following before trying to install the Intel compiler:
As root user:
mv /bin/sh /bin/sh.orig
ln -s /bin/bash /bin/sh
Read the following information to continue to configure your system BEFORE you attempt an installation.
Following installation you are free to revert back to linking /bin/sh to /bin/dash if you so desire.
COMPATIBLE Linux Versions: Beta and recently released versions of Ubuntu may NOT be officially supported by Intel Compilers. Please see your ReleaseNotes document with your compiler to find the supported Linux distributions and versions. These instructions are merely to help install the compiler, keep in mind that versions of this linux distribution NOT in the ReleaseNotes document for your compiler version are NOT tested nor supported.
COMPATIBLE Intel Compiler Versions: In order to use Intel® Compilers (C++ or Fortran) under the lastest release of Ubuntu, you will need newer versions of the Intel compiler(s). Do NOT try to install older Intel Compilers such as 12.0, 11.x, 10.x, 9.x or 8.x under Ubuntu 12.xx or newer: they will not install easily and probably will not work - and they are NOT supported. If you need an older Intel Compiler version, please read their ReleaseNotes and obtain an older, supported distribution (read this): http://software.intel.com/en-us/articles/older-version-product
Ubuntu 11.04 through Ubuntu 12.10 :
Composer XE (aka version compiler versions 12.x and 13.x) prerequisites for Ubuntu Desktop, assuming that gcc and g++ are installed already:
apt-get install build-essential
apt-get install gcc-multilib
apt-get install rpm
apt-get install ia32-libs (only needed if you install the 32bit compiler)
apt-get install openjdk-6-jre-headless
UMASK before you install: If you will install as root or use sudo for the installation, check the umask setting for your root user:
# umask
or
sudo bash ; umask
the value should be 0022. If not, set it to 0022 so that the files you install are readable by non-root users:
umask 0022
INSTALLATION:
untar the package tarball in a scratch directory such as /tmp. tar -zxvf l_fcompxe_2013.x.yyy[_intel64 | _ia32].tgz
cd into the extracted directory
./install.sh and follow the instructions.
during the install, you can ignore any warnings about the missing Java prerequisite - it may not recognize openjdk-6-jre-headless.
And like below, IF you are installing OLDER compilers versions 11.1 or older, you will need to install libstdc++.so.5 libs (see below).
08 February 2011: Ubuntu 10.10 and Compiler 12.x aka "Composer XE" notes:
The Intel compiler 12.0 aka Intel Fortran Composer XE 2011 no longer requires libstdc++-5. It now uses libstdc++-6 which is present in newer Ubuntu distributions. Please ignore the notes below for the step to install libstdc++5 UNLESS you have an earlier 11.1 or older compiler.
Read all the instructions below to install gcc, g++, build-essential, rpm etc.
IF you have to install Intel Fortran 11.1 or older, on Ubu 10.10
sudo apt-get install libstdc++5
ELSE
skip libstdc++5, your 12.x compiler uses libstdc++6
END IF
rev history:
29 April 2010: This guide also applies to Ubuntu 10.04.
2009 November 3: added notes for Ubuntu 9.10
Note: Newer versions of this linux distribution may NOT be officially supported by Intel Compiler Professional Editions 11.1. Please see your ReleaseNotes document with your compiler to find the support Linux distributions and versions. These instructions are merely to help install the compiler, keep in mind that versions of this distribution NOT in the ReleaseNotes document are NOT tested nor supported. You are on your own here.
Introduction :
Using Intel® Compilers version 12.0 and 11.1 under Ubuntu (10.10, 10.04, 9.10, 9.04, 8.04 and 8.10) Desktop and Debian Desktop
For older Ubuntu and Debian versions, see THIS ARTICLE. Make sure to use the latest Intel Compilers version. Older compilers will not be compatible with the latest Ubuntu distributions. For compatibility and supported versions always read the ReleaseNotes document for your compiler.
These notes apply to Ubuntu Desktop. Ubuntu Server was not tested but should be similar.
2 November 2009: Ubuntu 10.10, 10.04, and 9.10
For users of Ubuntu 10 and 9.10, follow the instructions here. If you have 9.04 or older, skip ahead to the section titled "Ubuntu 9.04 and Older"
BEFORE YOU INSTALL Intel® Fortran for Linux or Intel® C++ for Linux on your fresh Ubuntu Desktop installation, you will first need to install several packages to prepare the system to serve as a development platform. First, open a Terminal window and become root:
sudo bash
(type your user password)
At this point, you should have a root shell. Test this with command 'whoami' which should return "root"
Check that gcc is installed. By default. Check this with:
gcc --version
It should return "gcc (Ubuntu 4.4.1-4ubuntu8) 4.4.1 (or some newer version - as long as it returns a version you have gcc installed)
If, for some reason, you do not have gcc installed, use Synaptic Package Manager (under 'System' -> 'Administration' menus) OR use apt-get to install gcc:
apt-get install gcc
Next, install the 'build-essential' package and package g++. This is not installed by default. Again, use Synaptic Package Manager or apt-get :
apt-get install build-essential
apt-get install gcc-multilib
this should also install g++, but in test this with:
g++ --version
if g++ is not found, install it:
apt-get install g++
A few other packages are required:
apt-get install rpm
apt-get install ia32-libs (this is only required on 64bit Ubuntu/Debian systems)
To use the Intel IDB graphical debugger, you will also need the Java JRE 5 or 6 installed. One way to get this is through Synaptic package manager. Open Synaptic and for sources enable Ubuntu's partner repository. Once that is done, use Synaptic to fetch the package sun-java6-jre.
We also recommend fetching the Sun JRE directly from Sun: get the latest JRE from:
http://java.com/en/download/manual.jsp
OR you can use the OpenJDK from the distribution:
apt-get install openjdk-6-jre-headless
Next, Ubuntu 9.10 Desktop does not provide libstdc++5, which is required for the Intel Compilers. You will have to get the package for libstdc++5 from an older Debian or Ubuntu distribution ( 9.04 for example ). A repository is here:
http://packages.debian.org/stable/base/libstdc++5
On this page, you will see the title "The GNU Standard C++ Library V3". Scrolling down, find the table for "Download libstdc++5".
9.10: For 32bit Ubuntu i386 libstdc++5 Installation:
For 32bit Ubuntu systems you will need to install the 32bit version of libstdc++5, that is, the "i386" package.
Select the download for the libstdc++5 package for "i386". Pick a mirror site to begin the download. If you are using Firefox, you will be prompted if you want to "Open with GDebi Package Installer" - select OK to continue. Otherwise, save the deb package and use your favorite package manager to install. Install the i386 libstdc++ deb package. SKIP the Intel 64 Libstdc++5 (AMD64) directions below and find the section on installing the compiler after prerequisites are installed.
9.10: For Intel 64 / AMD64 (64bit Linux installation) Libstdc++5:
follow these instructions IF AND ONLY IF you have a 64bit Ubuntu installation.
Intel 64 installation: Select the download for the libstdc++5 package for "amd64". If you are using Firefox, you will be prompted if you want to "Open with GDebi Package Installer" - select OK to continue. Otherwise, save the deb package and use your favorite package manager to install. Install the amd64 libstdc++ deb package.
by default, the 64bit libstdc++.so.5 library will install in /usr/lib which is linked to /usr/lib64.
Now, you also will need the 32bit libstdc++.so.5 installed in /usr/lib32. Unfortunately, the "i386" version of the libstdc++5 package wants to install in /usr/lib which is your 64bit library directory and where you just installed the "amd64" libraries - so you DON'T want to download and install the "i386" package into the default location.
We'll need to download the "i386" package to a temporary directory, use dpkg to extract the contents to the temp directory, then manually copy the library to /usr/lib32 and create the symbolic link:
First, download libstc++5 package for "i386" - save to disk and do NOT launch a package manger to install it. Save it in your 'Downloads' folder or /tmp (or any other scratch directory).
Using your root terminal window, cd to the directory where you have downloaded the .deb package, it should have a name similar to 'libstdc++5_3.3.6-18_i386.deb'. The exact version is not important, but make sure it is a "i386" deb package.
Extract to the local directory:
dpkg --extract libstdc++5_3.3.6-18_i386.deb ./
Notice that a 'usr/' folder was created and the package contents extracted here. Now we'll copy the library to /usr/lib32
cd usr/lib
cp libstdc++.so.5.0.7 /usr/lib32
cd /usr/lib32
ln -s libstdc++.so.5.0.7 libstdc++.so.5
9.10: Installing the Compiler Now That Prerequisities are Installed (32 and 64bit):
Once you've completed the above, extract your compiler .tgz kit, cd to the compiler installation directory, and run ./install.sh
During the installation, you WILL get a warning message "Detected operating system Debian* (generic) is not supported", followed by
----------------------------------------------------------------- ---------------
Missing optional pre-requisite
-- operating system type is not supported.
-- system glibc or kernel version not supported or not detectable
-- binutils version not supported or not detectable
----------------------------------------------------------------- ---------------
"Would you like to perform an unsupported install of this product [yes/no] (no)?"
enter "yes"
This will complete the installation. Keep in mind, you will get this warning from the compiler installer until such time as this particular OS and version are supported. Once installed, you can read the ReadMe notes in ...installdir.../Documentation directory which has a list of the supported Linux distributions and versions.
Debugger Notes:
Known Intel® IDB Debugger issues under Ubuntu:
1) Ubuntu 9.x versions, IA32 and Intel64 platforms:
- When loading an executable, a startup dialog may appear that should not. If this dialog, "Unable to locate source file “…/start.S – Do you like to search for it manually?” appears, click ‘No’ and continue normal debugging.
- Avoid using debug commands such as ‘next’, ‘step’ on the Console Window of the Debugger GUI since this may lead to unexpected behavior of the debugger; use the corresponding options ‘Continue’, Step Into’ etc. from the Run menu instead.
2) Ubuntu 9.10, IA32 and Intel64 platforms:
- You need to set the environment variable GDK_NATIVE_WINDOWS=1 to avoid a known bug in Eclipse delivered with Ubuntu 9.10. Add export GDK_NATIVE_WINDOWS=1
to your ~/.bashrc file or execute this command on command line:
export GDK_NATIVE_WINDOWS=1
Ubuntu 9.04 and Older:
In order to use Intel® Compilers ( Fortran or C++ ) under Ubuntu 9.04, 8.04 or 8.10 you will need the latest 11.0 or 10.1 version of the Intel compiler(s). Older 10.0 and 9.1 versions of the compilers may not work properly under Ubuntu 9.04, 8.04 or 8.10. Keep in mind that new versions of Ubuntu/Debian may not be OFFICIALLY supported by the Intel Compilers. Please see your ReleaseNotes document with your compiler version for a list of officially supported distributions and versions.
If you have active support for your compiler, you can download the latest Intel compiler version from
https://registrationcenter.intel.com
BEFORE YOU INSTALL Intel® Fortran for Linux or Intel® C++ for Linux on your fresh Ubuntu Desktop installation, you will first need to install several packages to prepare the system to serve as a development platform:
Check that gcc is installed. By default. Check this with:
gcc --version
By default, Ubuntu 8.04 Desktop installs gcc 4.2.3-2ubuntu7. 8.10 should have gcc 4.3.2, 9.04 gcc 4.3.3
If, for some reason, you do not have gcc installed, use Synaptic Package Manager (under 'System' -> 'Administration' menus) OR use apt-get to install gcc:
apt-get install gcc
Next, install g++. This is not installed by default. Again, use Synaptic Package Manager or apt-get to install package "g++"
apt-get install build-essential
apt-get install g++
Next, you need to install the 32bit compatibility library libstdc++.so.5. To do this, use apt-get or Synaptic Package Manager to retrieve and install package "libstdc++5"
apt-get install libstdc++5
This package may require installing another package as a prerequisite,
"gcc-3.3-base"
If so, go ahead and install this older gcc package.
For x86-64 architecture, you will also need a number of other packages, including package 'ia32-libs' to install the 32bit versions of libstdc++.so.5 in /usr/lib32 as well as 32bit header files in libc6-dev-i386. These notes apply to Ubuntu 9.04 but should also apply to 8.10 and 8.04
apt-get install ia32-libs
apt-get install lib32stdc++6
apt-get install libc6-dev-i386
apt-get install gcc-multilib
apt-get install g++-multilib
Finally, there is an optional package to consider: The 11.0 version of the Intel Compiler for Linux has a graphical
debugger, a new graphical interface for the IDB debugger. If you want to use this debugger, please make sure to install the Java JRE version 1.5 or greater. This can be done at anytime after the installation of the compiler. However, you will get a warning message about 'missing prerequisite' for the JRE - simply ignore that message and proceed with the installation. OR to avoid that message and enable the graphical IDE, get the latest JRE from:
http://java.com/en/download/manual.jsp
Once installation of prerequisites is complete, you are ready to start the Intel compiler(s) installation. During the installation, you may get a message "Detected operating system Debian* (generic) is not supported", followed by
----------------------------------------------------------------- ---------------
Missing optional pre-requisite
-- operating system type is not supported.
-- system glibc or kernel version not supported or not detectable
-- binutils version not supported or not detectable
----------------------------------------------------------------- ---------------
"Would you like to perform an unsupported install of this product [yes/no] (no)?"
enter "yes"
This will complete the installation. Keep in mind, you will get this warning from the compiler installer until such time as this particular OS and version are supported. Once installed, you can read the ReadMe notes in ...installdir.../Documentation directory which has a list of the supported Linux distributions and versions.
Using the Compiler:
The next step after installing the compiler is to set up the user environment to use the compiler and libraries. First, locate your documentation: it is installed in <installdir>/Documentation/en_US (currently, US English is the language supported in the documentation). Under this directory, read the <installdir>/Documentation/en_US/getting_started_f.pdf or getting_started_c.pdf document. Read how to use iccvars.sh or ifortvars.sh (or the .csh equivalents) to set your environment to use the compiler(s). You may wish to put the 'source ifortvars.....' command into your home startup scripts.
Next, use a browser to open <installdir>/Documentation/en_US/documentation_f.htm or documentation_c.htm which is an index to the rest of the online documents. Browse the documents to familiarize yourself with their locations and contents.
Finishing up: Usage
Once the compilers are installed, it is necessary to source the ifortvars.sh or ifortvars.csh file to properly set the user environment to use the Intel compilers. This (these) commands can be placed in a user's ~/.bashrc or other system login file (fortran 11.1.046 example shown below, bash user):
64bit compiler selection:
source /opt/intel/Compiler/11.1/046/bin/ifortvars.sh intel64
32bit compiler selection:
source /opt/intel/Compiler/11.1/046/bin/ifortvars.sh ia32
C/C++ users: substitute "iccvars" for "ifortvars" above.
Other versions: substitute your actual minor version for "046" above.
Also, if you are a CSH or TCSH user, use ifortvars.csh or iccvars.csh as appropriate.
Need more help? Join our User Forums:
Fortran: /en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/
C/C++: /en-us/forums/intel-c-compiler/
Binomial Options Pricing Model Code for Intel® Xeon Phi™ Coprocessor
Introduction
The Binomial Options Pricing Model (BOPM) is a generalized numerical method used to value options in the quantitative Financial Services industry. To be accurate, it is a lattice-based approach that uses a discrete-time model of the varying price over time of the underlying financial instrument. For historical reason, it’s also known as a tree model because it has a root and the leave-nodes. In this paper, we continue to follow tree-analogy convention knowing that it’s a lattice approach in reality.
The binomial model was first proposed by Cox, Ross, and Rubenstein in 1979 [1]. Binomial option pricing is a simple but powerful technique that can be used to solve many complex option-pricing problems. The name was derived from the construction of a binomial tree that models different possible paths that might be followed by the underlying asset price over the time span of the option.
This article presents the Binomial Option Pricing Code to provide a representative way of pricing derivatives using lattice methods.
Code Access
Binomial Option Pricing Code is maintained by Shuo Li and is available under the BSD 3-Clause Licensing Agreement. The code supports the asynchronous offload of the Intel® Xeon® processor (referred to as “host” in this document) with the Intel® Xeon Phi™ coprocessor (referred to as “coprocessor” in this document) in a single node environment.
To get access to the code and test workloads:
Download the Binomialsrc.tar file
Build Directions
Here are the steps you need to follow in order to rebuild the program
- You have to install Intel Composer XE 2013 SP 3 in your system.
- Source the environment variable script file compilervars.csh under /pkg_bin
- Untar the binomialsrc.tar, execute build_sh script file with csh/tcsh shell
- Invoke executable file ./Binomial
Run Directions
./Binomial [verbose] [precision]
verbose
0: turn off workload feedback and result validation (default)
1: turn on workload feedback and result validation
precision:
0 single precision (default)
1 double precision
[command prompt]$ ./Binomial
Binomial Option Pricing in single precision:
Pricing 36600000 Option with time step of 2048.
Benchmarking the reference result in single...
Completed in 256.17960 seconds. Options per second: 142868.51654
[command prompt]$ ./Binomial 1 1
Initializing data...
...allocating memory for options.
...generating input data in mem.
Creating the reference result...
Benchmarking the reference result...
Binomial Option Pricing in double precision:
Pricing 36600000 Option with time step of 2048.
Benchmarking the reference result in double...
Completed in 514.10377 seconds. Options per second: 71191.85352
L1 norm: 2.717881E-05
TEST PASSED
The program created and priced 36,600,000 sets of option data. The program was vectorized and parallelized to run on both the Intel® Xeon® Processors and Intel® Xeon Phi™ Coprocessor. The products involved are Intel E2697V2 at 2.7 Ghz and Intel® Xeon Phi™ Coprocessor 7120P. Intel® Composer XE 2013 SP1 is used to build the final executable program.
This program calculates the European call option price for each input data set. This benchmark runs on single node with or without a Intel Xeon Phi Coprocessor. It can also be modified to run in a cluster environment. The program reports a latency measure in seconds spent in pricing activities and also a throughput measure using 36.6 million options. Verbose mode provides additional information and also validates the results using a Black-Scholes-Merton [2] formula.
Background
As previously stated, binomial option pricing is a simple but powerful technique used to solve complex option-pricing problems. Unlike the Black-Scholes-Merton and other complex option pricing models, it does not require solutions to stochastic differential equations; the binomial option-pricing model is mathematically trivial. Anyone with a good understanding of the time value of money and risk-neutral valuation should be able to understand the binomial model.
Consider a stock with the initial value of S0 and an option f with lifetime T. During the life of the option, the stock price can either move up from S0 to a new level, S0u where u > 1 (going up by u-1 percent), or it can move down from S0 to a new level S0d where d < 1 (going down by 1-d percent).
Let’s suppose that when the stock price moves to S0u, the payoff from option is fu; when the stock price moves down to S0d, the payoff from the option is fd. Binomial valuation starts by creating a riskless portfolio consisting of a long option in Δ unit shares of the underlying stocks and a short position in one unit of option. When the stock moves up, the value of the portfolio becomes S0u Δ -fu; when the stock moves down, the value of the portfolio becomes S0d Δ–fd. Using no arbitrage argument, these two cases should be the equal value or:
S0u Δ -fu = S0d Δ –fd
Therefore:
The risk-neutral argument also dictates that all portfolios shall earn the risk-free interest rate. Since we know the risk-free interest r, the current value of the portfolio when the stock goes up can be written as follows:
| (S0u–fu) e-rT |
This must equal the cost of setting up the portfolio: | |
S0Δ - f = (S0u –fu)e-rT | |
Thus: | |
f = S0Δ - (S0u –fu)e-rT | |
Since we know Δ, we can further reduce this equation as follows: | |
f = e-rT [pfu + (1-p)fd ] | |
where | |
![]() |
With the last two equations, we can naturally interpret the variable p as the probability of an upward movement in the underlying stock price. Thus, 1-p is the probability of a downward movement. We can further state that the value of the option today is the expected future payoff discounted at the risk-free rate.
The last challenge in creating a binomial option-pricing algorithm is to integrate the stock price movement process into the binomial tree parameters u and d. Using the same assumption as the Black-Scholes model, which Hull[3] has elaborated in Chapter 14 of his book, we can construct a binomial tree by using the underlying stock price volatility σ. Cox, Ross, and Rubinstein (1979) proposed the following set of u and d:
These values not only match the volatility with the up and down movement of stock price but also make the binomial tree recombinant, in the sense that the nodes that represent a stock moving up then down and the stock price moving down then up, will be merged or recombined as a single node. This property also spares us from the elaborated process to propagate the internal node values to the leaf nodes; instead it gives a closed-end formula for each leaf node.
Now we can easily extend the one-step binomial tree into a two-step binomial tree, three-step binomial tree, and N-step binomial tree. The previous picture shows a perfectly balanced N-step binomial tree, where each initial node has exactly two child nodes representing an upward movement and a downward movement of the stock price, respectively.
The probability of an upward movement is p and the probability of downward movement is 1-p. The N-Step binomial tree has N+1 level; each level has one less node than its previous level and one more node than its next level. The number of leaf nodes for N-Step binomial tree is N+1.
Implementation of Binomial Tree Options Pricing
Binomial option pricing can be conceptually described as a three-step process:
- Binomial tree representation and generation
- Calculation of option values at the leaf nodes
- Backward inductive calculation of option value at internal nodes; the value at the root node is the current price of the option
The next step is to determine a data structure that can represent all the tree nodes. Since the binomial tree model involves calculations on adjacent levels, the minimum data structure required is the one that holds all the node values in one level, including the leaf nodes level, which has the number of nodes equal to the number of time steps +1. Depending on the application precision requirement, we can choose a one-dimensional, single-precision, floating-point array to accomplish this purpose.
static float Call[NUM_STEPS+1];
Binomial Option Pricing Implementation-European Options
The following code gives the implementation of Binomial Tree European Option Pricing in C/C++.
#include <mathimf.h> #include <omp.h> #include <stdio.h> #define NUM_STEPS 2048 #define OPT_N 18300000 const float RISKFREE = 0.06f; const float VOLATILITY = 0.10f; __forceinline float Exp( float x) { return expf( x); } __forceinline double Exp( double x) { return exp( x); } __forceinline float Sqrt( float x) { return sqrtf( x); } __forceinline double Sqrt( double x) { return sqrt( x); } template <class Basetype> void BinomialTemplate( Basetype *CallResult, Basetype *S, Basetype *X, Basetype *T) { #pragma omp parallel for for(int opt = 0; opt < OPT_N; opt++) { __attribute__((align(4096)))Basetype Call[NUM_STEPS + 1]; const Basetype Sx = S[opt]; const Basetype Xx = X[opt]; const Basetype Tx = T[opt]; const Basetype dt = Tx / static_cast<Basetype>(NUM_STEPS); const Basetype vDt = VOLATILITY * Sqrt(dt); const Basetype rDt = RISKFREE * dt; const Basetype If = Exp(rDt); const Basetype Df = Exp(-rDt); const Basetype u = Exp(vDt); const Basetype d = Exp(-vDt); const Basetype pu = (If - d) / (u - d); const Basetype pd = 1.0f - pu; const Basetype puByDf = pu * Df; const Basetype pdByDf = pd * Df; #pragma simd for(int i = 0; i <= NUM_STEPS; i++) { Basetype d = Sx * Exp(vDt * (2.0 * i - NUM_STEPS)) - Xx; Call[i] = (d > 0) ? d : 0; } for(int i = NUM_STEPS; i > 0; i--) #pragma simd #pragma unroll(4) for(int j = 0; j <= i - 1; j++) Call[j] = puByDf * Call[j + 1] + pdByDf * Call[j]; CallResult[opt] = (Basetype)Call[0]; } }
In the hybrid version of the code. The program execute simultaneously on the host Intel Xeon processors and on the Intel Xeon Phi coprocessors. The main program instantiates the above code twice, once to run on the host processor, another to run on MIC coprocessor. It uses asynchronous offload capability from Intel Compiler so that host and coprocessor can work concurrently.
About the Author
Shuo Li works at Software and Service Group at Intel Corporation. His main interest is parallel programming, and application software performance. In his recent role as a software performance engineer covering financial service industry, Shuo works closely with software developers and modelers and help them achieve best possible performance with their software solutions.
Shuo holds a Master's degree in Computer Science from university of Oregon and an MBA degree from the Duke University.
References and Resources
[1]Option Pricing: A Simplified Approach (1979) by John C. Cox, Stephen A. Ross, and Mark Rubinstein:
[2]The Pricing of Options and Corporate Liabilities (May-Jun 1973) by Fischer Black and Myron Scholes:
[3]Hull, John C, Options, Futures, and other Derivatives,10th Edition Prentice-Hull, 2014
[4]Intel Xeon processor: http://www.intel.com/content/www/us/en/processors/xeon/xeon-processor-e7-family.html
[5]Intel Xeon Phi™ Coprocessor: https://software.intel.com/en-us/articles/quick-start-guide-for-the-intel-xeon-phi-coprocessor-developer
Code for Good - Harnessing Software Skills To Create Shared Value
The social and business impact of Intel's Code for Good program
Executive Summary
Intel's Code for Good program aims to tackle society's most pressing problems by connecting nonprofit organizations with volunteer software developers, web site creators, and student programmers. Launched by Intel's Software and Services Group (SSG) and Corporate Affairs Group (CAG), Code for Code supports Intel's corporate vision to "create and extend computing technology to connect and enrich the life of every person on Earth." Code for Good also embodies Intel's "shared value" approach to corporate responsibility, which aims to improve lives and solve global challenges while simultaneously creating business value.
Code for Good is an open initiative; anyone who is interested in applying software to solve social problems is welcome to participate or organize a Code for Good event. To date, most Code for Good events have been "hackathons," where students, Intel employees, or other software developers have come together for a day or more to work with nonprofit organizations to design or develop applications or web tools to help solve problems faced by the nonprofits we work with. Volunteers at Intel-sponsored Code for Good events have worked on projects related to bringing learning resources to rural areas in emerging nations, giving under-served women a voice on the Web, helping middle schoolers learn algebra, and more. Code for Good has enabled Intel employees and other volunteers to develop greater software expertise and gain new skills and insights. It has enhanced Intel's reputation and helped the company build relationships with nonprofits, members of the external software development community, and students who will become the technical workforce of tomorrow.
The Beginnings of Code for Good
Each year, Intel employees donate more than a million hours of volunteer service worldwide to help improve education, tackle environmental challenges, and address other issues in communities around the world. In recent years, employees have increasingly found opportunities to donate the skills that they have honed at Intel—in areas such as legal, marketing, finance, human resources, and information technology—to schools, nonprofits, and NGOs. The impact of these "skills-based" volunteering hours is particularly significant because many of the services provided are those for which schools and nonprofits would have to pay high rates in the marketplace.
In 2011, Renee Wittemyer, in the Corporate Responsibility Office in CAG, and Josh Bancroft, who works in Developer Relations in SSG, began working together to identify additional ways that Intel's technical employees could donate their expertise in high-impact, meaningful volunteer engagements. The new initiative was named "Code for Good," and in March 2012, Intel hosted the first Code for Good event—a two-day hackathon in Oregon that brought over 50 Intel employees together with five nonprofit organizations to work on software projects related to girls and women in education. Since then, Intel has organized, sponsored, and collaborated on dozens of Code for Good events that have enabled employees, students, external software developers, and nonprofits to work together to address social issues with software. "We'll work on Code for Good events with just about any interested group," says Bancroft. The goal, he explains, is to scale the movement by encouraging both Intel and non-Intel organizations to organize events with one objective in mind: Use software to help solve social problems.
Anatomy of a Hackathon
A typical Code for Good hackathon lasts 24-36 hours, but can be longer or shorter. Volunteer coders—generally employees, student programmers, or professional developers—are recruited to work with nonprofits on social problems related to a particular theme, such as healthy living, connecting community, or teaching algebra. "Before the hackathon, we work with local nonprofits to gather problem statements and identify specific things related to software that are keeping them from doing more good in the world," explains Wittemyer. "At the start of the hackathon, we present the problem statements to the volunteers, and then they break into teams of four to five people and get to work. The goal is that by the end of the first day of the hackathon, each team will have accomplished something concrete to help the nonprofit achieve its mission." On the second day of the hackathon, each team presents its accomplishments to the whole group.
Besides the enthusiasm of volunteers, a typical hackathon has four basic ingredients, says Bancroft: "Food, caffeine, Internet, and power—not necessarily in that order." Intel ensures that all of these ingredients are on hand, occasionally supplementing the event with computing platforms such as Ultrabook™ systems for participants to use. Additional ingredients—"fun stuff" like toy dart blasters and colored hairspray—are frequently provided to perk up volunteers when energy starts to fade in the wee hours of a hackathon; for that reason, volunteers in event photos often sport blue, green, or purple hair.
Outcomes for hackathons vary: Sometimes a team will complete an application or a prototype for one, and other times members may make improvements to existing software or a Web site, or map out a software solution to be completed at a later date. "The output of one hackathon team can sometimes be a great starting place for a team at a subsequent hackathon," says Wittemyer. Although it is not a requirement, many times volunteers will continue to work with nonprofit partners to finish a project long after a hackathon has ended.
Shared Value: Creating Business Value While Doing Good
The concept of "shared value" was developed by Harvard Business School professor Michael Porter in collaboration with the nonprofit consulting firm FSG which specializes in strategy, research, and measuring social impact. Shared value offers corporations the opportunity to utilize their skills, resources, and management capability to lead social progress while creating business value. Companies can have greater social impact when they find an opportunity that lies at the core of their business. According to Porter and FSG, shared value is created in three key ways:
- Reconceiving products and markets: How targeting unmet needs drives incremental revenue and profits
- Redefining productivity in the value chain: How better management of internal operations increases productivity and reduces risks
- Enabling local cluster (ecosystem) development: How changing societal conditions outside the company unleashes new growth and productivity gains
Intel's corporate responsibility strategy has long-embodied the principles of shared value, focusing on initiatives and programs that create value for society and for its business. Code for Good is an example of this shared-value approach, yielding benefits not only for nonprofit organizations and the volunteers, but also for Intel across all three areas of shared value. In terms of redefining products and services, the hackathons help generate new knowledge and skills for its software business. The program helps drive productivity in the value chain through the strong employee engagement component, as it improves both job skills and productivity among employees. Finally, Code for Good exposes the software development community to technologies important to Intel and engages students who gain new skills and learn about Intel as a potential future employer. Both of these aspects help drive local cluster/ecosystem development.
Benefits for Intel. As a huge driver of silicon sales, software has become an increasingly important part of Intel's business. The company helps advance the computing ecosystem and expedite growth in various market segments both through its own software offerings and by providing support to external software developers who write some of the applications and operating systems that run on Intel®-based platforms. Code for Good helps Intel build critical relationships with the larger community of external software developers. As Bancroft puts it, "Getting developers together at a hackathon to work on a problem that they really care about is a great way to build meaningful connections."
The events are also a good way for Intel to engage with young people who may someday become developers or even members of Intel's workforce. According to another employee volunteer, "We've found that students, especially, seem to love the combination of technology with a social agenda. The initiative is a powerful way to demonstrate the socially engaged side of Intel and is a great recruiting tool. When students have a positive experience with Intel at a hackathon, they're more likely to eventually want to work for Intel and tell their friends about us. The initiative also helps students develop technical and teamwork skills that enable them to be better developers."
Code for Good also helps Intel lead the software industry and expose developers and students to technologies and products that are strategically important to the company. HTML5, for example, is a markup language that enables programmers to develop applications that will run across multiple platforms, including Intel-based tablets, smartphones, and Ultrabook systems. "It's good for Intel if developers are writing applications for multiple Intel platforms," says Brad Hill, an Intel programmer who helps organize student hackathons. At a Code for Good event, he says, "We can present HTML5 as a good way to build an application, and show students how to access and use HTML5 tools. We can also expose them to products like Intel-based Ultrabook systems, giving them hands-on experience that they wouldn't otherwise have."
Benefits for volunteers. Intel software engineer Matt Groener says that when he learned about a Code for Good hackathon for Intel employees, "signing up was a no brainer. It provided an opportunity for me to take what I do for a living and directly improve people's lives. I could really see the benefit of what I was able to help with, so my contribution felt really, really valuable. It provides an absolute overwhelming feeling of satisfaction and fulfillment."
Hackathon volunteers also often gain new skills or learn to apply existing skills in different ways. Volunteer Achod Goganian, an Intel software engineer, explains: "Some of the technologies my team worked with were unfamiliar to us, so the hackathon provided a low-risk opportunity to do something new. We all did some web development that we hadn't done before. As it turns out, that work is now relevant in my job at Intel because my group is now working on web-based services." Similarly, Hill describes skills and insights he has gained at hackathons: "Every one of these events gives me a chance to refine my public speaking skills and play a management role that I haven't experienced before," he says. "I also gain insight into students' viewpoints of our products and the market as a whole, which helps me see what kinds of directions we need to be going in as a company."
Likewise, he says, hackathons can help students build teamwork skills and gain confidence in their abilities to become programmers. "They may have viewed the initial development as kind of a hurdle, but we show them that they can just sit down and do it. A few of them haven't even done any programming, so through these events, they're learning very valuable and marketable skills. They also get a better view of what it would be like to work for Intel." Tom Murphy, Professor and Program Chair of Computer Science at Contra Costa College in California, has partnered on several Code for Good events. He describes hackathons as "non-graded work done for delight and passion," and notes that participation proves to be a "game changer" for many students. "I think they get a more accurate glimpse of what life might be as a computer science professional. Students experience self-teaching themselves new material. That is a priceless skill to acquire. The hackathons foster problem-solving expertise, which is near and dear to my heart."
For some student volunteers, hackathons translate into paid work experience. The company has hired students who participated in Code for Good events to work as mentors at the Intel Ultimate Engineering Experience, a summer program that provided young people with hands-on technical engineering experience, some of whom are the first generation in their family to go to college. In addition to acquiring skills, students generally report the hackathons to be "just plain fun" and "have a great time getting together and coding."
Benefits for nonprofit partners. Outcomes for nonprofits have ranged from completed applications to roadmaps for projects. Student volunteers on one team created a spaceship game that could become a valuable tool in children's math education. Other team members mapped out a way for a nonprofit to move away from handwritten paper records to an online solution for processing donations. A third team developed an engaging way for kids and families to make healthier lifestyle choices to fight childhood obesity. "A finished application isn't necessarily the most common or best measure of success for a hackathon team," says Bancroft. "What we often get are very good prototypes, frameworks for an application, or great proof-of-concept ideas." He explains that projects are often finished or further developed by the nonprofit after an event, by a team at a subsequent hackathon, or by volunteers who continue to work with a nonprofit after a hackathon is over. For example, the nonprofit organization World Pulse has built an online platform that enables women in 190 countries to become citizen journalists so their voices can be heard and they can connect with other women to solve global problems. Kathy Grantz, World Pulse Project Manager, worked with Intel to define ways that hackathon volunteers could help World Pulse advance its mission. Projects they identified included developing a version of the World Pulse web site optimized for mobile platforms and creating a map tool on the site that would more clearly show how many women were writing from each country, and what they were writing about. Intel employee volunteers tackled the World Pulse projects at a Code for Good hackathon in Oregon. By the end of the event, one team had completed a full prototype of the mobile site.
The map project initially proved more problematic. "We chewed on that project for most of the morning, and I thought, 'Oh boy, this is not going anywhere,'" says Grantz. "It was a fast learning curve, with the Intel employee volunteers understanding the user problem while in parallel researching the pros and cons of unfamiliar technical software solutions." Goganian, who volunteered on the map team, says, "We didn't have enough time to both define and complete the map tool during the hackathon, but by the end of the event we understood how to get it done and had figured out a pretty straightforward way to do it. We could see that it would be useful, and we wanted World Pulse to have it. We also wanted the satisfaction of completing it, so some of us continued to work on the project after the hackathon ended." Goganian and some of his team members continued to work with World Pulse after the event and also completed an additional survey tool for the organization's web site. They eventually finished the map tool, and it has been implemented on the World Pulse web site. "It's a huge improvement," says Grantz. "It's made our site easier to navigate, and it gives women a better view of other women in their region and what they're writing about. It's difficult to quantify, but we believe that the impact has been very powerful."
Looking Toward the Future
To date, most Code for Good events have been standalone hackathons, while a few others have been held in conjunction with larger forums. In 2012, for example, The Feast social innovation conference in New York City and an Intel Developer Forum included Code for Good hackathons that enabled software experts from around the world to work on software for nonprofits. High school girls also got involved in the Code for Good initiative as part of the eight-week 2012 Girls Who Code Summer Immersion Program. In summer 2013, ® was a sponsor of the National Day of Civic Hacking (http://hackforchange.org), in which 95 self-organized hackathons around the United States to use openly available civic data sources to create solutions to solve local and national problems. Throughout 2013, the Developer Relations team in SSG held several "Codefest" events for Android developers, some of which had a Code for Good element, working with nonprofits like the UN Foundation and the Mobile Alliance for Maternal Action (MAMA).
Bancroft and Wittemyer hope to see more and more people—inside and outside of Intel—plan and organize Code for Good events. To help scale the initiative, they developed a "hackathon-in-a-box," which outlines the best-known methods Intel has collected through hosting hackathons, including step-by-step instructions for recruiting volunteers, engaging nonprofits, and defining problems to be addressed. The toolkit is shared freely with anybody who is interested in organizing an event, and is available on the Code for Good web site.
The student portion of the program is being scaled through student leaders. The Intel teams initially work with a couple of students to organize a hackathon, so that they have the experience and can organize additional events at their university on their own. The hackathon-in-a-box is being tailored specifically for student organizers, and Intel is supporting the student efforts by loaning computing systems or other hardware for the hackathons, and providing vouchers for food, coffee, and other supplies.
Courtney Martin, an Intel Finance Specialist, is developing ways to evaluate and quantify the business value and social impact of the Intel® Code for Good initiative. The measurement tool captures inputs (resources Intel and other organizers put into event); outputs (number of stakeholders engaged, number of prototypes and applications created and media response); and impacts (how the community beneficiaries of the nonprofits are better served, what skills employees and volunteers gain, and improvements in brand and product awareness among participants). Early results from the tool she has developed show that volunteers find Code for Good events to be highly satisfying, and that they gain insights and new skills while making connections and meaningful differences in people's lives. "The cost of putting on a hackathon is low," she says. "We already know that the return on investment is very high. By focusing on making the program as scalable as possible and measuring what works most effectively, we hope to make an even greater impact."
May 2014. For more information visit: https://software.intel.com/codeforgood
OpenStack News Roundup: Archive
In ww04-2014, Robert J. Morrison of the Intel Software & Services Group started posting these weekly news roundups about OpenStack:
ww19-2014
HP Announces Helion Hybrid Cloud--Runs its own OpenStack
- HP Makes $1 Billion Bet on Open Cloud
- HP drops $1bn, two-year OpenStack cash bomb. Floats own-branded open-source plus IP protection
- HP builds an OpenStack of its own and layers indemnification on top
Deploying OpenStack made easy with Puppet
When it comes to managing infrastructure deployments of a certain size, even a ninja sysadmin can't do it all without some help. In fact, one might argue that knowing when and how to use IT automation tools for managing infrastructure is a prerequisite to getting your admin blackbelt. Enter Puppet.
Puppet is an open source framework for templating repetitive tasks to save time and make them easy to document, modify, and replicate. And it's backed by a company that provides enterprise support while still conducting their development out in the open. [Interview with Chris Hoge, Senior Software Engineer for OpenStack at Puppet Labs. Puppet is only one deployment option, but is closely aligned with the OpenStack project]
Metacloud Raises $15M to Give Customers More Flexibility in Clouds
Metacloud Inc., which gives customers private clouds that can integrate with Amazon.com Inc.’s public cloud, raised another $15 million in funding, the company told Venture Capital Dispatch. Metacloud is built on OpenStack, the cloud computing software that was originally developed by Rackspace and NASA and then put into open source. It’s now supported by a community of more than 300 vendors and is able to interface with Amazon Web Services, which is Amazon’s public cloud.
Piston Announces Quanta QCT as Certified Piston OpenStack Hardware Vendor
Piston certifies hardware vendors to support Piston OpenStack, available as a per-server license with an annual support subscription from the company. This custom cloud system configuration from Quanta QCT includes all cabling, power management, networking, and servers required to deploy and operate a Piston OpenStack-powered private cloud.
Tesora Announces OpenStack Collaborations With Open Source Leaders, Red Hat and MongoDB
Tesora, developers of OpenStack enterprise-class, scalable database as a service (DBaaS) platform, today announced collaborations with Red Hat, the world's leading provider of open source solutions, and MongoDB, the leading provider of NoSQL technology, to collaborate on bringing the power and flexibility of the Trove database as a service platform to their customers implementing OpenStack such as Red Hat Enterprise Linux OpenStack Platform.
See also: OpenStack now does NoSQL
Four things to watch for at next week’s OpenStack Summit
Is the state of OpenStack too many distributions for too few customers? We need to hear more on this at next week’s OpenStack Summit.
[Next week’s newsletter will feature a round-up of key news from the Summit]
ww18-2014
Oracle Previews OpenStack-Solaris Hybrid
Software giant Oracle is not hesitant to leverage open source software … The company has created a fairly substantial Linux distribution, controls the MySQL database, and participates in a number of file system projects. While Oracle has backed off on the plans of the former Sun Microsystems to open up Solaris to compete against Linux on a level community playing field, Oracle knows that Solaris needs to do the things that Linux can do. One of those things is OpenStack, and it will be coming to Solaris.
See also: Oracle adds OpenStack to updated Solaris
Press release: Oracle Introduces Oracle Solaris 11.2 -- Engineered for Cloud
Red Hat Acquires Ceph ISV, InkTank
Tesora, Database as a Service, and OpenStack Trove
Tesora's CEO, Ken Rugg, stopped by to discuss the ninth release of OpenStack, Icehouse, the concept of Database as a Service (DBaaS), and the newest release of Tesora's own Database Virtualization Engine (DVE). Tesora's goal is to help organizations create and deploy database-based OpenStack applications without their having to have a great deal of expertise with database administration; in short, to make database just another service rather than a central focus.
Dell - Red Hat Cloud Solutions available for customers at various stages of OpenStack evaluation and deployment. Dell and Red Hat to enable enterprise application developers and hybrid cloud environments through OpenShift solutions
Dell and Red Hat now are collaborating on next-generation Linux Container enhancements from Docker [The Dell – Red Hat deal has received a lot of coverage, this release gets more granular on the solutions they will offer]
ww17-2014
OpenStack Icehouse Cloud Debuted With Heavyweight Support
The OpenStack Foundation officially debuted its Icehouse release on April 17 providing enterprises, service providers and end-users with new and enhanced cloud computing features. The Icehouse release is the ninth release of OpenStack since the project officially debuted and enjoys the support of many of the world's leading tech vendors, including IBM, HP, Dell, Cisco, AT&T, Intel, VMware and many others. With the Icehouse release, in addition to more features, there was more development activity across multiple metrics. In this slide show, eWEEK examines release data from the OpenStack activity dashboard and the Bitergia data report on the Icehouse release. [By the numbers data: commits, contributors, tickets closed, and so on]
Dell Red Hat Cloud Combo For Dev/Test
Dell and Red Hat have coengineered a set of enterprise-grade private cloud solutions based on OpenStack. Known rather cleverly as the "Dell Red Hat Cloud Solution", this is a RHEL OpenStack platform for elastic and dynamic IT services to support and host non-business critical applications — including mobile, social, and analytics — and dev/test environments. These solutions include "rapid on-ramps" to OpenStack private clouds for Proof of Concept Configuration — designed for customers looking to explore OpenStack capabilities; and Pilot Configuration — designed for testing cloud applications, and for customers beginning a production environment. [Dr.Dobbs reporting on the announcement from last week]
eRacks Announces Launch of Their Largest Cloud Server Ever, the New 432TB eRacks/NAS72
"With the confluence of the highest storage density available, 'Green' miserly power usage, and sheer storage size, the eRacks/NAS72 brings an unprecedented level of utility to the cloud marketplace," said Joe Wolff, CTO and Founder of eRacks. "When combined with our available OpenStack pre-installation/pre-configuration services, it's a truly unbeatable Enterprise-class turnkey Petascale private cloud."
OpenStack Icehouse Supports Rolling Upgrades and Tighter Overall Integration
Icehouse focuses on maturity and stability as illustrated by its attention to continuous integration (CI) systems, which featured the testing of 53 third party hardware and software systems on OpenStack Icehouse …. Icehouse also features a "discoverability" enhancement to OpenStack Swift that allows admins to obtain data about which features are supported in a specific cluster by means of an API call. On the networking front, OpenStack now contains new drivers and support for the IBM SDN-VE, Nuage, OneConvergence and OpenDaylight software defined networking protocols. Meanwhile, OpenStack Keystone identity management allows users to leverage federated authentication for "multiple identity providers" such that customers can now use the same authentication credentials for public and private OpenStack clouds. In total, Icehouse constitutes an impressive release that focuses on improving existing functionality as opposed to deploying a slew of Beta-level functionalities.
He brought Microsoft the open source it had viewed with such dread and now former Redmond man Bill Hilf is challenging the thinking at Hewlett-Packard … Engaging with the community is important in terms of making its cloud successful rather than just a vehicle to flog more servers. That means committing paid HP programmers to work on the open-source OpenStack code, code that might also help other companies – including potential rivals. Hilf claims he’s hiring a “ton” of people in dev and testing to deliver and OpenStack product HP can credibly claim it's able to support. The firm is now the third largest single contributor to OpenStack – behind Rackspace and Red Hat – with “others” the largest block. Hilf promised HP would “invest a lot” in things like stability, QA and hardening of the OpenStack code to build an infrastructure that’s “enterprise ready.”
ww16-2014
OpenStack Icehouse Release
Official press release:
Voice of the User Reflected in New Features of OpenStack Icehouse Release
Rolling upgrades, federated identity and tighter platform integration reflect software maturity; continuous integration process drives software reliability.
Top companies contributing code to the Icehouse release were Red Hat, IBM, HP, Rackspace, Mirantis, SUSE, OpenStack Foundation, eNovance, VMware and Intel. Top users contributing code also included Samsung, Yahoo! and Comcast.
Release webinar:
A webinar highlighting the new features in Icehouse, plus key end users Das from Intel and Troy Toman from Rackspace, is available for playback at https://www.brighttalk.com/webcast/499/107965\.
News Roundup:
OpenStack Icehouse cloud platform adds database service, better support for Containers
The OpenStack project has officially released Icehouse, the latest version of its cloud computing framework, with a focus mainly on stability and consolidation. However, it does add new features such as a database service, improved support for Containers, and early support for Hadoop deployments on OpenStack clouds.
OpenStack’s latest Icehouse release hits the streets
OpenStack releases a new version of its open source cloud computing code twice a year. And today is the day for Icehouse, the first release of 2014. OpenStack leaders say they are excited about how many of the changes in the Icehouse release have been influenced by end users of the platform. "We've worked hard to build a community of developers and users, and they're the ones driving the priorities of how the software evolves," says COO of the OpenStack Foundation Mark Collier. Large scale enterprise end users want improvements related to reliability, ease of use and upgradability.
OpenStack Icehouse Features a Trove of Open-Source Cloud Updates
Database-as-a-service technology, live upgrades, storage improvements and federated identity are part of the new open-source cloud platform release. The new Icehouse comes six months after the OpenStack Havana release came out in October 2013. As part of Icehouse, the OpenStack platform is now gaining a new project with the inclusion of the Trove database-as-a-service (DaaS) technology.
Icehouse: New OpenStack cloud arrives
OpenStack, an extremely popular open source Infrastructure as a Service (IaaS) cloud program, has just released its latest version: Icehouse. According to the OpenStack Foundation, the ninth release of OpenStack comes "with new features reflecting a community-wide effort to bring the voice of the user into the rapidly maturing open source cloud software platform." This is a major release that includes many minor improvements and new features. Perhaps the most welcome for OpenStack administrators is that you can finally do "rolling upgrades in OpenStack Compute (Nova). Rolling upgrades simplify the process of upgrading to new versions of the OpenStack software by not requiring virtual machine (VM) instances to be shut down in order for upgrades to install.
OpenStack's latest release keeps the DIY private cloud features coming
'Icehouse,' the newest edition of the open source IaaS, adds more features, but uptake with enterprises and competition with public cloud vendors remain thorny
OpenStack Targets Enterprise Workloads with Icehouse
The OpenStack Foundation on Thursday released its planned Icehouse build of the open source cloud Infrastructure as a Service (IaaS) operating system. In all, the Icehouse release includes 350 new features and 2,902 bug fixes. The OpenStack Foundation credited the tighter platform integration in Icehouse to a focus on third-party continuous-integration (CI) development processes, which led to 53 compatibility tests across different hardware and software configurations.
OpenStack Icehouse: IT'S ALIVE! – live migration, that is
OpenStack's Icehouse release has arrived, bearing stress-busting gifts for hollow-eyed cloud administrators. The distribution was released on Thursday, and – finally – gives admins some upgrading features for shifting OpenStack's "Nova" compute component to the new version without having to pull the plug on their entire install.
Other News
Red Hat Continues OpenStack Momentum with Global Enterprise Deployments
SAN FRANCISCO – RED HAT SUMMIT 2014 – April 15, 2014 – Red Hat, Inc. (NYSE: RHT), the world’s leading provider of open source solutions, today announced significant momentum for its OpenStack-powered product offerings focused on delivering an open hybrid cloud. Since their introduction in June 2013, Red Hat’s enterprise OpenStack offerings have emerged as industry-leading solutions for building scalable private clouds with streamlined management. Several dozen organizations have embarked on proof-of-concept deployments for Red Hat’s OpenStack offerings, with customers around the world now moving to enterprise deployments. [Press release from Red Hat Summit highlighting OpenStack deployments. 4 of the 5 examples given are universities.]
More evidence that the Linux wars have moved to OpenStack
As Red Hat Summit gears up, Canonical drops news of a new Ubuntu Linux release — but with most of the focus on OpenStack. It’s sort of funny that the press release announcing the new Ubuntu Linux 14.04 LTS release seems as focused on Ubuntu OpenStack as on Linux per se. It’s studded with partner testimonials from Cisco, Mellanox, NTT Software, Brocade lauding Ubuntu OpenStack. But then again, that makes sense given that the vendor battlefield has shifted from core operating system to core cloud infrastructure, where Canonical OpenStack has gained traction with Hewlett Packard and other big cloud providers.
See also: Ubuntu Beefs Up OpenStack Support
See also:Ubuntu chases after Red Hat with OpenStack and Docker bundles
Giving rise to the cloud with OpenStack Heat
Setting up an application server in the cloud isn't that hard if you're familiar with the tools and your application's requirements. But what if you needed to do it dozens or hundreds of times, maybe even in one day? Enter Heat, the OpenStack Orchestration project. Heat provides a templating system for rolling out infrastructure within OpenStack to automate the process and attach the right resources to each new instance of your application. [Interview with Steve Baker, PTL for the Heat project during the Icehouse release cycle and senior software engineer at Red Hat].
Focus Or Breadth? Broadening OpenStack With Trove And Tresora
Despite a ton of well-funded startups, the anointment buy some mega-vendors and huge market attention, OpenStack is yet to deliver any massively compelling customer stories. So a tension exists within the OpenStack ecosystem – should members focus on building a strong compute and storage platform that actually delivers on the needs for a robust AWS alternative, or should they innovate to match AWS’ breadth of functionality? It’s a topic ripe for discussion today since Trove, an OpenStack project that delivers Database as a Service on top of OpenStack, is now an official OpenStack project.
Dell and Red Hat extend partnership in OpenStack cloud solutions
Dell and Red Hat have extended their partnership in OpenStack-based cloud solutions for the enterprise, with co-engineered infrastructure to help customers get started. The pair are also collaborating on Red Hat's OpenShift application platform and on Container technology based around Docker.
OpenStack's French Connection: eNovance
One of the few services available for implementing OpenStack clouds is eNovance, a major contributor to the OpenStack project. Like other major contributors Red Hat, Rackspace, and Mirantis, it's also a member of the OpenStack Foundation board of directors. Unlike those firms, however, eNovance is based in Europe, with offices at 10 rue de la Victoire in Paris. It's the only European member of the board, and typically the seventh largest contributor of modules of code to OpenStack.
Red Hat: We don't need no stinking dictator to make money out of OpenStack (in late 2015)
Open source company Red Hat thinks it might start making significant money out of OpenStack in the Autumn of 2015 and it won't need a Linus Torvalds-like dictator to keep the project focused.
The company told El Reg on Wednesday at the OpenStack summit that it will turn the data center management cloud technology into serious money toward the end of next year. Red Hat recently re-organized its business units to help it push OpenStack into the enterprise, with the hope of creating the same lucrative market for the data center management and provisioning tech as it did for Linux half a decade ago.
ww15-2014
Sneak peek at Icehouse Release [No link]
OpenStack Icehouse releases April 17th. The OpenStack Foundation Marketing Group gave a sneak preview of the release this week (plus an overview of how projects move from incubated to integrated). Deck is attached. Key highlights include improved upgrade support, the ability to target machines by affinity (e.g. these machines require fastest possible interconnectivity), object storage discoverability, improved object store replication performance, tighter integration between compute and networking.
Mirantis, Parallels Partner on OpenStack Distribution
Mirantis and Parallels are hoping to make it easier for service providers to offer OpenStack infrastructure-as-a-service (IaaS) offerings to customers via the Parallels Automation platform. The companies have partnered to integrate the Mirantis OpenStack distribution with Parallels Automation.
See also: Mirantis and Parallels Partner to Help Service Providers Monetize OpenStack
Affordable-cloud pioneer Nebula nabs $3.5M for OpenStack hardware
Cloud infrastructure startup Nebula claims its cloud hardware can undercut Amazon Web Services by 90 percent. The Mountain View, Calif.-based company deploys complete private clouds for enterprises based on OpenStack (open source cloud computing software) and commodity hardware. The resulting implementations cost as little as $100,000, which is cheap for an enterprise-capable data center. Now the company has taken on an additional $3.5 million in debt funding, according to a Form D filed with the Securities and Exchange Commission yesterday. We aren’t sure who ponied up the funds, but we’d put our money on Silicon Valley Bank, which provides Nebula with debt and credit facilities.
Cisco Plans to Build a Giant Cloud Network, But Why on OpenStack?
Giant networking equipment manufacturer Cisco has finally decided to jump on the cloud bandwagon. The company has announced that it is planning to invest $1 billion over the next two years to build a federated ''intercloud'' network infrastructure on the OpenStack framework, together with partners such as Australian telecom carrier Telstra, European cloud company Canopy, Canadian communications services provider Allstream, Indian IT company Wipro, and wholesale communications technology distributor Ingram Micro. Cisco's other partners will, presumably, build out the giant cloud atop Cisco's hardware. But, the question that begs for an answer is, why did Cisco opt for OpenStack instead of VMware, with which it has already entered a joint venture? The second question is, why did Cisco decide to get into an already crowded market? Is OpenStack really ready for the mainstream?
Ringing In The Cloudy Changes At Red Hat - Predicting The Perilli Future
When Gartner analyst Alessandro Perilli wrote a post last year detailing exactly why he believed OpenStack was broken and unable to sell into enterprise, shockwaves reverberated around the cloud industry. Analysts from traditional firms tend not to make such sweeping and pointed criticisms – instead their language tends to be more moderate and considered. It’s fair to say that Perilli lit a fire under the broader OpenStack community. That fire got all the more interesting when, only a few months later, Perilli announced that he was leaving Gartner to work for Red Hat and would be in charge of the strategy and overall product direction for the company’s open cloud initiatives In light of this I reached out to Perilli to get his take on the Red Hat opportunity and, frankly, to work out just why Red Hat picked up the guy that has been most vocal about OpenStack’s lack of viability in the enterprise market.
ww14-2014
Ericsson-Mirantis Deal a Milestone for OpenStack Software
OpenStack, a kind of operating system for computer rooms, is emerging as an increasingly important piece of software. A move by Ericsson stands to provide another big push. The Swedish giant has signed a deal with a startup called Mirantis to use OpenStack as the software foundation for its telecommunications network, internal data centers and cloud computing services that Ericsson will offer its customers.
Cloudscaling … today announced its new Cloud Concierge Services .. Cloud Concierge provides enterprises with the services and resources required to predictably and reliably deploy a modern, OpenStack-powered private or hybrid cloud solution. Cloud Concierge Services can be employed with any version of OpenStack, including do-it-yourself deployments created in-house. The service is available to any organization looking to evaluate an existing private or hybrid OpenStack cloud deployment or implement a new cloud starting at ground zero. Cloud Concierge, along with the company's Open Cloud System (OCS), makes Cloudscaling the first in the OpenStack cloud market to have a comprehensive product and services offering. [Another entry into the “make OpenStack installation easier” business]
VMware: Price Tag versus OpenStack Immaterial, Says ISI
ISI Group networking and telecom analyst Brian Marshall …. writes that in talking to someone [at Interop in Las Vegas] working at a so-called hyperscale data center “we did collect an interesting nugget of information pertaining to the costs of deploying VMWare (VMW) cloud management framework vs. an alternative open-source OpenStack solution.” [one person’
ww13-2014
Cisco and partners to build US$1bn global OpenStack cloud
Promises to support any workload, any hypervisor, any cloud
Cisco on Monday announced that it will build a global public cloud business together with its partners, which will provide a wide variety of on-demand services that will compete with cloud providers across the board, from Infrastructure- and Platform-as-a-Service offerings by the likes of Amazon, Google and Microsoft to specific business application services, such as VMware's Desktop-as-a-Service offerings or security, network management and collaboration software offered as services by a multitude of providers out there.
See also: Cisco’s Intercloud: For when one cloud isn’t enough
A sneak peek of OpenStack Icehouse
Today I’ll be giving a sneak peek to just some of the changes made in one of the two projects that made up the original OpenStack release and today is still one of the largest—showing no signs of the innovation slowing down—OpenStack Compute (Nova). OpenStack Compute is a cloud computing fabric controller, a central component of an Infrastructure as a Service (IaaS) system. It is responsible for managing the hypervisors on which virtual machine instances will ultimately run and managing the lifecycle of those virtual machine instances. This list is by no means exhaustive but highlights some key features and the rapid advances made by the contributors that make up the OpenStack community in a six month release cycle.
Dell launches high density switch and OpenStack controller for SDN
Dell is putting more grunt into software defined networking (SDN), releasing a high-density next-generation spine switch with 132 40GbE ports and targeting the carrier and cloud space with an OpenStack fabric controller it said simplifies network functions virtualization (NFV) deployments. Speaking in London ahead of the launch, Dell Networking VP of product management and marketing Arpit Joshipura said Dell’s new Z9500 switch, with more than 10Tbps throughput and 600 nanoseconds latency, is the highest density switch on the market today.
Red Hat Enterprise Virtualization promises more OpenStack integration
Red Hat just released a beta version of the latest rev of its server and desktop virtualization solution, Red Hat Enterprise Virtualization (RHEV). Based on KVM, which Red Hat acquired from Qumranet in 2010, Red Hat has revved RHEV roughly every six months, and the latest update ties right into another big-name Red Hat offering that's become almost as big as RHEL itself: OpenStack.
See also: Red Hat Enterprise Virtualization 3.4 Beta: On-ramp to cloud computing
Just call red-hot Red Hat the 'OpenStack' company
Even Jim Whitehurst is surprised at how the world is embracing OpenStack from Red Hat. "We'll we're seeing, actually - I kind of I'll say surprisingly strong interest across the board," the Red Hat CEO told an analyst Thursday evening.
See also: Red Hat Banking on OpenStack for Future Growth
OpenStack in Asia – Where Business Agility Trumps Cost Savings
Enterprise customers are frustrated with growing costs and limitations of traditional IT software. This problem is exacerbated when start-ups appear out of nowhere to compete with agile businesses powered by the cloud. To meet customers' needs, I have seen a number of legacy IT vendors extend the OpenStack cloud platform to give their customers a viable cloud computing operating system that does not lock customers in with a single provider and limited options.
ww12-2014
How Openstack stores data in the cloud with Cinder
Without solid storage, the data of the cloud lives only in the moment. Within OpenStack, storage comes in two flavors: object storage, which stores chunks of information, and block storage, which is more analogous to the traditional idea of a disk drive image. Block storage in OpenStack is handled by Cinder, which provides the infrastructure for managing volumes and sharing them with the other components in OpenStack. Meet John Griffith. He is currently serving as the Program Technical Lead (PTL) for the Cinder project. John is a software engineer at SolidFire, and he has been an active user and contributor to open source software for almost ten years. We chatted with John to better understand how the Cinder project functions within OpenStack, why it is important, and what is on the roadmap for the Icehouse release.
Look out, Amazon -- OpenStack jobs are on the rise
Amazon EC2 specialists can take their pick of the most job openings, but OpenStack engineers are closing the gap
Cloud skills are unquestionably one of the hot new areas for IT job seekers, with a bevy of career possibilities available. But which skills for what specific cloud architectures are most in demand? As you can imagine, it's Amazon followed -- now very closely -- by OpenStack.
Hadoop Coming to OpenStack Juno in October 2014
Savanna was recently renamed to Sahara ….. Sahara has now been formally voted on to become an integrated part of the Juno release.
Maybe OpenStack has legs after all: Red Hat taps once-skeptical Gartner analyst to lead group
Alessandro Perilli will help Red Hat push its enterprise hybrid cloud plan. The company hopes to become to OpenStack cloud what its been for Linux.
Mirantis OpenStack 4.1 is Now Available for Download
New release of Mirantis OpenStack uses Fuel for deployment on CentOS or Ubuntu [but not Red Hat].
Mar 4 OpenStack Foundation Board Meeting
[Blog post with notes from the latest board meeting. Not the official minutes, but a good read]
ww11-2014
Is Red Hat now the boss of OpenStack? Should it be?
Was the Cloud Foundry Foundation set up to promote the open-source PaaS or to thwart Red Hat OpenShift? Or a little bit of both?
See, Mirantis Does More Than Just Stir. Certification Program A Hit With OpenStack Users
Mirantis’ certification is a vendor non-specific course that helps IT pros learn how to deploy and operate OpenStack and (shock, horror) it’s a certification that isn’t tied to any particular OpenStack distribution – certificate recipients have to prove proficiency at configuring OpenStack within RHEL, Ubuntu and CentOS environments, across multiple hypervisors (KVM and vSphere), multiple storage paradigms (Ceph, NetApp, EMC) and differing network topologies.
New name, sharp focus on Trove for startup Tesora
Tesora is the Italian word for treasure. And by adopting that new name last month, the Cambridge-based startup formerly named ParElastic intends to reflect its strategic shift to support Trove, the database as a service component of OpenStack, the massive open source cloud-computing infrastructure project.
Mark Shuttleworth blog: Ubuntu is the #1 platform for production OpenStack deployments
OpenStack has emerged as the consensus forum for open source private cloud software. That of course makes it a big and complex community, with complex governance and arguably even more complex politics, but it has survived several rounds of competition and is now settling down as THE place to get diverse vendors to work together on a IAAS that anybody can deploy for themselves. It is a big enough forum with sufficient independent leadership that no one vendor will ever control it (despite some fantastically impressive efforts to do so!). In short, OpenStack is what you want if you are trying to figure out how to build yourself a cloud. And by quite a large majority, most of the people who have actually chosen to deploy OpenStack in production, have done so on Ubuntu. [Blog from the Canonical CEO, some competitive comments and a look ahead to Ubuntu 14.04LTS/OpenStack]
Also of interest:
Consistency—a necessity when it comes to any large-scale, open source project. Sharing source code and libraries between the different components of OpenStack is critical to its rapid evolution and fast-paced development. The Oslo program is what holds it all together and brings consistency to OpenStack. We wanted to learn more about Oslo and what is does for OpenStack. So we asked the program lead to share his thoughts.
ww10-2014
OpenStack networking and orchestration: What's possible?
OpenStack, the most popular open source cloud infrastructure platform, has evolved rapidly in a few short years to become a major factor in the growth and adoption of cloud computing. But while much of the attention has been on OpenStack's compute functions, it has also opened up a new world in networking, enabling engineers to automate and orchestrate network resources the way they would virtual machines. At the heart of these capabilities is OpenStack's Neutron application programming interface (API), which can be used to integrate the provisioning and management of these network resources into the orchestration of the overall IT infrastructure.
GoDaddy Becomes OpenStack Sponsor
GoDaddy, the world's largest technology provider dedicated to small businesses, today announced it has sponsored the OpenStack Foundation, a global community of developers collaborating on cloud architecture and an open source cloud operating system. This is a key step in GoDaddy's strategy to invest in the most scalable, simple-to-implement and feature-rich cloud technology.
CPLANE NETWORKS, the leader in high-performance software-defined networking (SDN), today announced the availability of a new network virtualization platform for enterprises and cloud service providers. Dynamic Virtual Networks (DVN) transforms static physical networks into virtualized resource pools that can be allocated on demand, significantly reducing the time and cost to deploy cloud applications. DVN is Built for OpenStackTM, the leading open source computing platform for private and public cloud service orchestration
Dell Plans for Big NFV, SDN OpenStack Push
It looks like Dell has big plans for the network functions virtualization (NFV) and software-defined networking (SDN) space. Some of those plans revolve around the open source world; and that shows with Dell's latest OpenStack-related announcement. A partnership formed in December 2013 with Red Hat (RHT) is being expanded. Together, the two companies will be working on co-engineering NFV and SDN for OpenStack, specifically for the telecommunications market segment. But Dell is also collaborating on such endeavors with Calsoft Labs to deliver NFV and SDN within Dell OEM products.
Ooyala turns to Metacloud for brawny OpenStack hybrid cloud
Ooyala deals with lots and lots of digital video. It serves up about a billion (with a “b”) videos per month to about 200 million viewers across 130 countries. …. Ooyala is always looking for the most efficient way to deploy those workloads on private and public clouds. Much of the variable workload stuff, including transcoding, runs in the public cloud — Ooyala tends to rely on Amazon Web Services. But, its big data stack of Hadoop, Cassandra and Spark, on the other hand, runs on bare metal at its west coast data center. And that workload is moving onto a private cloud running Metacloud’s OpenStack CarbonIOS implementation.
See also: Metacloud to provide Ooyala with OpenStack-based private cloud
eNovance: why enterprises are building OpenStack clouds
It’s logical for larger enterprises to build their own cloud, according to Nick Barcet, VP of products at eNovance, a French consultancy that is a leading authority on OpenStack architectures. This is not a question simply of number of employees or revenues, he told me when we met last week at Cloud Expo Europe in London. What matters is that you have a business need for IT that operates at scale.
ww09-2014
Mirantis and IBM team up on OpenStack benchmarking tool
Mirantis, in partnership with IBM's SoftLayer, just announced the availability of a benchmark test designed to help IT decision makers better understand key performance, scalability and manageability criteria of the OpenStack environment and that environment executing in an IBM SoftLayer cloud computing data center.
See also Mirantis and IBM Set New OpenStack Benchmark, Standing Up 75,000 Live VMs in Multi-Datacenter Cloud
Examining the latest OpenStack spat
So what’s the real deal with OpenStack driver compatibility efforts? Last week, Mirantis stepped forward, pushing what it called a multi-vendor open-source driver certification effort for drivers that work with OpenStack. The goal is a no-brainer — making sure software and hardware from many companies can easily work in the OpenStack cloud ecosystem. Mirantis co-founder Boris Renski told me that VMware, Netapp, Dreamhost and other companies were aboard. Interestingly, driver certification — indeed certification of all kinds — is a point of pride for Red Hat, another OpenStack player, and the one that, arguably, has become the most influential in the OpenStack cosmos. Red Hat’s name was conspicuously absent from the Mirantis list and about an hour before Mirantis announced this effort, Red Hat posted a blog of its own, touting the value of its certification efforts.
Red Hat Shows How Not To Win Friends And Influence People
There’s a perception that the open source world is fueled by altruism, collectivism and good will. Some news from the OpenStack community this week questions that perception. The Register carried the exclusive story of the somewhat sordid goings on between OpenStack contributors Red Hat and Piston Cloud.
Piston Announces OpenStack 3.0 - The Last OpenStack You'll Ever Try (Maybe)
Piston Cloud is an interesting company. And not just because its founder and CTO Josh McKenty has perhaps the smartest dress sense in the cloud industry. Take a company that contains much of the brains behind the original project that morphed to become OpenStack, add a business model that sees them ignore the public cloud monster and rather aim for the arguably more lucrative enterprise space and throw in board memberships of both the OpenStack foundation and the Cloud Foundry Community Advisory Board and there is much opportunity for interesting conversations. It’s a claim that has got the attention of others in the OpenStack ecosystem, last week it was reported that Red Hat made the questionable move of cancelling Piston’s sponsorship of their upcoming summit. They eventually rescinded the decision but, frankly, all the move does is shows that Piston’s offering is indeed credible and that Red Hat, far from being the nice community-minded open source guys we all thought, are a big bad evil empire [matches the point above!]. Who would have figured? Anyway, I spent some time last week talking with McKenty in the lead up to the company’s launch of its 3.0 product. 3.0 is a release that is being called, not too modestly, “the last OpenStack you’ll ever try”.
See also: Piston coats OpenStack in secret Red Hat–killing sauce [This distribution sports automation, upgrade in place, and support for SDN plug-ins]
OpenStack converges around Cloud Foundry, future of Solum in question
Following lots of confusion regarding platform as a service in the OpenStack world last year, it's clear that the community is converging around Cloud Foundry. Yesterday, Pivotal announced that it would build an open governance model for Cloud Foundry. It might surprise people who have been following the OpenStack PaaS market to learn that Rackspace, HP and ActiveState are three companies sponsoring the effort. Those vendors have been behind a separate OpenStack PaaS project known as Project Solum. The effort has been a source of confusion for many people, starting with exactly what its goals are.
Open source cloud will outshine AWS, says OpenStack founder
OpenStack launched three years ago at the right time: Open source was going mainstream, and cloud was beginning to take off. Within the next three to five years, OpenStack community member Rackspace believes, the majority of clouds will be built on OpenStack. But the Amazon Web Services constituency would likely say otherwise as the battle between AWS and OpenStack heats up. Here, Jim Curry, senior VP and general manager of Rackspace's private cloud business, explains OpenStack's lofty plans to take over the cloud market, RackSpace's strategy, the new stack that has emerged and the revelation that not everything works better in a cloud infrastructure.
Servosity Introduces the World's First UnCrashable Disaster Recovery powered by OpenStack
Servosity UnCrashable TM Disaster Recovery allows Managed Service Providers (MSPs) to backup and launch an entire enterprise network or data center and server infrastructure instantly. Servosity … today officially launched its UnCrashableTM Disaster Recovery Cloud. UnCrashableTM Disaster Recovery (UnCrashableTM DR) is the first Disaster Recovery as a Service (DRaaS) where servers are now UnCrashableTM. Servosity also announces it is now a sponsor of the OpenStack Foundation and will contribute its knowledge of disaster recovery cloud with the OpenStack community.
ww08-2014
OpenStack Cloud Goes Open for Vendor Certification
An effort led by Mirantis could reshape the way vendor certifications are done in the cloud. The way that IT certifications have long worked is that they have largely been vendor-specific. That's something that is about to change with the open-source OpenStack cloud platform.
Rather than relying on vendor-specific certifications, a new effort being led by OpenStack vendor Mirantis is aiming to open-source certification for the cloud. For example, if an IT person has EMC storage in-house and wants it managed via OpenStack, there will be a place for that person to now go and see what specific EMC storage products work with what version of OpenStack.
See also: Opening OpenStack: A New Certification Initiative Challenges Red Hat
See also:Mirantis pushes for “open-source” certification of OpenStack drivers
OpenNebula vs. OpenStack: User Needs vs. Vendor Driven
[Ignacio M. Llorente is from the OpenNebula Community, and freely admits the article is biased towards OpenNebula. However, some of the points raised about OpenStack are not without merit, and can be a useful guide to some of the objections OpenStack faces]
We’ve crafted this post to answer a recurring question we’ve been hearing lately, specially from organizations planning to build their own private cloud: How do you compare OpenNebula with OpenStack?… This is indeed a complex question. There is no single answer because open-source projects and technologies present several dimensions. But we are far from afraid to answer it: the short, tl;dr version would be that they represent two different open-source models. While OpenNebula is an open-source effort focused on user needs, OpenStack is a vendor-driven effort.
SUSE does OpenStack with SUSE Cloud 3
Suse's OpenStack attempts to quell long-standing deployment headaches, adds more hypervisor options than Red Hat
Like Linux before it, OpenStack is manifesting via different vendors, each a product of a different development philosophy and target market. Now, the creator of a major business-grade Linux -- not Red Hat, but Suse -- is revving its own edition of OpenStack. Dubbed Suse Cloud 3, this distribution of the Havana edition of OpenStack supports two of the big new features rolled out for OpenStack this time around: its orchestration (Heat) and telemetry (Ceilometer) components.
Rackspace adds much-needed budget management tools to OpenStack
Cloud Cruiser's financial management solution for OpenStack on Rackspace provides insights into usage, billing, chargebacks, and demand forecasting
The hardest part about creating a private cloud isn't creating it, but managing it, and sometimes the hardest management tasks aren't the technical ones, but the budgetary ones. How much of this cloud is actually getting used, and to what end? Cloud Cruiser has been answering that question since around 2011, when it first invited companies to try out its cloud computing chargeback and usage management solution. Now it's making that solution available to OpenStack users on the Rackspace Private Cloud.
Storage policies: Coming to an OpenStack Swift cluster near you
OpenStack Object Storage (code named Swift) has a fairly frequent release schedule for improvements and new capabilities but naturally, there is always significant gravity around integrated releases for any OpenStack project. Even though the Havana release was very big for OpenStack Swift, with new support for global clusters, the upcoming Icehouse will be the biggest release yet for the OpenStack Swift project. Since the project was open-sourced over three years ago, the community of contributors has grown significantly. Every new release is bigger than any prior release given the vibrancy of developer participation. Recent contributions have come from companies including HP, IBM, Intel, Red Hat, Rackspace, and SwiftStack. Icehouse is targeted for a major set of new features, and many improvements to replication and metadata. The standout new capability though is storage policies, a new way of configuring OpenStack Object Storage clusters so that deployers can very specifically match their available storage with their use case.
Kontron joins OpenStack, takes open source cloud to telcos
Embedded computing developer Kontron has joined the OpenStack foundation as a sponsor and is working to integrate its cloud-based application infrastructure with the open source cloud provisioning and orchestration platform. Kontron said the move is a “significant milestone” in its long-term strategy in the software defined infrastructure space, an area telcos, cloud service providers and vendors are paying more attention to as of late.
Alcatel-Lucent to deploy Red Hat Enterprise Linux OpenStack Platform
Alcatel-Lucent has decided to deploy Red Hat Enterprise Linux OpenStack Platform based on Red Hat Enterprise Linux and Kernel-based Virtual Machine (KVM), as the common platform for its Network Functions Virtualization (NFV) solution, CloudBand.
Also of interest:
How to contribute to OpenStack
Like any open source community, OpenStack has its local quirks when it comes to getting involved in the project. This is further complicated, in the case of OpenStack, by the fact that it's actually a collection of numerous smaller projects which are linked together via shared APIs, but which have independent objectives and developer communities. This article isn't comprehensive, by any means, but it's an attempt to show you some of the places where you can plug into the community.
ww07-2014
PrivateCore Locks Down OpenStack Servers
vCage Software Establishes Trust and Protects Servers from Persistent Malware and Insider Threats
PrivateCore, the private computing company, today announced the general availability of its vCage software which audits platform integrity and protects OpenStack clusters from persistent malware, malicious hardware devices and insider threats. vCage validates the integrity of OpenStack infrastructure and protects servers using memory encryption to secure data in use across private, public, and hybrid clouds. …. PrivateCore vCage supports Intel® Trusted Execution Technology (TXT) hardware-based root of trust technology to validate the entire platform environment. Enterprises and service providers can create trusted computing pools in the cloud knowing that they are running on servers for which the integrity of the server firmware, BIOS, hypervisor and operating system code has been verified.
As part of the OpenStack community, Wind River will help apply OpenStack to telecommunications infrastructures and collaborate with other members to further promote and support open source cloud infrastructure advancements across industries. Wind River is helping the industry apply OpenStack to network functions virtualization (NFV) environments for carrier infrastructure. By leveraging its deep experience in telecommunications, Wind River is able to develop extensions to OpenStack that can address carrier needs that are required to maintain the level of carrier grade service level agreements (SLAs).
Database startup Parelastic rebrands as Tesora, embraces OpenStack
In a pivot, Parelastic morphed into Tesora and will make its current database virtualization middleware a plug-in for OpenStack. The company, which launched in 2010 to attack the MySQL scalability problem, is renaming itself Tesora and casting its lot with the OpenStack community to build atop the OpenStack Trove database-as-a-service project.
Piston Partners With Tokyo Electron Device to Accelerate OpenStack Private Cloud Adoption in Japan
SAN FRANCISCO, CA--(Marketwired - Feb 12, 2014) - Piston Cloud Computing, Inc., the enterprise OpenStack™ company, today announced that it has entered into a partnership with Tokyo Electron Device to distribute Piston OpenStack™ in Japan. Tokyo Electron Device (TED), a technical trading firm that provides semiconductor products and business solutions, also commissions the design and development of its own brand products. The partnership combines the power of Piston OpenStack™, the company's global-scale private cloud software, with TED's superior technical support and unmatched quality assurance to help customers meet their critical business objectives.
ww06-2014
OpenStack is crucial for HP’s strategy
William L. Franklin, Vice President of OpenStack & Technology Enablement, Cloud with HP… ““OpenStack is very crucial for HP’s strategy. HP believes in the hybrid cloud. Public cloud is really crucial for a lot of what people are doing with cloud. HP runs an OpenStack-based public cloud, but we also sell technology – software, hardware, storage, networking to service providers around the world. But we recognize that sometimes for compliance and security reasons – and sometimes for ego reasons – people want their own private cloud. In order to burst move workloads from a private cloud to a managed cloud to a public one and back-and-forth, we wanted a common architecture and a common set of tools we could use across all of this. HP has a very long history in open source, so we looked at different options and chose OpenStack. We were involved with folks at NASA and folks at Rackspace, helping create the foundation. We’re trying to move and more towards where we think hybrid is going,”
OpenStack pioneer Chris Kemp says enterprise cloud headed for revolution
theCUBE hosts John Furrier and Dave Vellante wrapped up the recently concluded OpenStack Enterprise Forum with an in-depth discussion on the private cloud featuring Chris Kemp, an open source visionary who led the development of OpenStack as the CTO of NASA. He went on to found Nebula, a startup that develops appliances for managing scale-out environments. Hyperscale is growing beyond market boundaries as data volumes continue to grow at an unprecedented rate, impacting every segment from financial services to the entertainment industry, according to Kemp. The technologies pioneered by web-scale giants such as Facebook and Microsoft to keep up with this information explosion are now being democratized through the Open Compute Project and OpenStack, with vendors like Nebula packaging the individual components into production-ready solutions.
Inktank Ceph Enterprise 1.1 upgrade is certified for Red Hat OpenStack
Inktank Storage Inc. has announced an incremental upgrade to its Ceph Enterprise software-defined storage system, offering improvements to the graphical manager component and formal certification for the Red Hat Enterprise Linux OpenStack Platform. Inktank Ceph Enterprise 1.1 is the first formal update to the subscription-based software since last October's debut release. The product combines open source Ceph software for object and block storage, and graphical management tools and support services; it is designed to run on commodity server hardware. With the update, Inktank Ceph Enterprise is officially certified as a storage back end for Red Hat Enterprise Linux OpenStack Platform 4.0, the supported OpenStack distribution that Red Hat launched last year. Inktank Ceph Enterprise 1.1 also supports Red Hat Enterprise Virtualization 3.3 as a hypervisor platform for Ceph's Rados Block Device.
7 Ways in which OpenStack Adoption Parallels Linux
By, Gordon Haff, Cloud Evangelist, Red Hat
In spite of its considerable momentum, there are still skeptics about whether OpenStack will ultimately succeed. My colleague Bryan Che tackled some of that skepticism in a blog post late last year and I’m not going to rehash his arguments here. Rather, I’m going to make some observations about how OpenStack is paralleling and will likely continue to parallel the adoption of another open source project that I think we can all agree has become popular and successful—namely Linux.
With Oracle Solaris 11 Running on Pluribus Networks' Freedom Server-Switches, Customers Can Take Advantage of Oracle Solaris Capabilities and Stability Across OpenStack Compute, Network and Storage. The cooperation between Oracle and Pluribus Networks is designed to help create unique customer value by offering customers the ability to use OpenStack(TM) plug-ins to manage their cloud environments based on Oracle Solaris and Pluribus Networks' Netvisor. [Also references Oracle decision to integrate OpenStack features into Oracle Solaris. Further proof point that this is not just a Linux play]
IBM looks to end the OpenStack wars with Jumpgate — a bridge to public clouds
As open-source cloud software OpenStack picks up more and more momentum, public-cloud providers are thinking hard about how much they should support OpenStack when many of them already have their own proprietary systems. IBM is looking to make that an non-issue. The company’s SoftLayer cloud business has come up with middleware to connect the application programming interfaces (APIs) that OpenStack uses with the APIs that public clouds use. And the company has released that middleware, called Jumpgate, under the MIT open-source license.
ww05-2014
OpenStack: The Project, The Products, And The Services
A blog that succinctly draws the distinction between OpenStack as an open source project, as a product, and as a service in terms of deployment, management and support. A useful primer that can be used to clear up some of the confusion in the market.
IO launches an OpenStack cloud running on open source servers
IO, which is known for its modular data center designs and specialized data center management software, is getting into the cloud provider space with a new service called IO.Cloud. It’s very open at the foundational level, at least, running OpenStack software on Open Compute hardware.
The OpenStack Blog: OpenStack Commitment to Interoperability
OpenStack began with the mission to produce a ubiquitous open source cloud computing platform. A key component of that mission is building not only software, but a large OpenStack ecosystem that would support its growth and add value to the core technology platform. In carrying out that mission, the Foundation has been taking key steps to define the core technology platform and advance OpenStack interoperability. Now that we have tons of users, we need to make sure all (downstream) products labeled “OpenStack” have a certain set of core capabilities, and we need to verify those with automated tests just like we do upstream. End-users should be our focus, and ensuring they get what they want and expect out of the platform once it’s running as a service is paramount. The goal is to define the first set of tests in time for the May 2014 Summit in Atlanta. If this matters to you, get involved!
See also: OpenStack Retools to Engage More Cloud User Feedback, Interoperability
By Chuck Dubuque (Red Hat)
The definition of potential is “latent qualities or abilities that may be developed and lead to future success or usefulness.” That's a great way to describe virtualization and, particularly, OpenStack adoption in 2013. Indeed, both solutions saw their potential skyrocket this past year, as greater numbers of organizations began exploring ways IaaS tools like OpenStack can help them achieve large-scale cloud deployments. Now, it's time for that potential to be fully realized – and it will be in 2014. It will be the year we see OpenStack make a big move from being a platform with a great deal of interest and hype, to something that is a very tangible option for public and private organizations that wish to build their cloud infrastructure.
OpenStack still has an enterprise problem
After trotting out some impressive enterprise users at its conference in Portland, Oregon, early last year, OpenStack hasn't been able to showcase many additional big names. Supporters tried to address "the debate about the opportunity for OpenStack in the enterprise" at a half-day conference yesterday that was held at the Computer History Museum and webcast. The speakers ended up highlighting a few of the challenges holding back OpenStack deployments.
OpenStack’s journey to the enterprise : Remaining challenges, proprietary issues
The OpenStack and Enterprise Forum, focusing on deploying OpenStack in the Next Generation Data Center, took place on January 29, 2014 at Computer History Museum in Mountain View, California. Here’s a recap of one Panel, discussing the remaining challenges OpenStack faces in going mainstream.
See also: Where do we go from here? Ken Pepple, CTO of Solinea. Over the course of his interview, Pepple expounded on several of the points he addressed during his earlier keynote panel discussion.
ww04-2014
Red Hat Announcements, January 22
On Wednesday Red Hat announced the release of Red Hat Cloud Infrastructure 4.0, which included RHEV 3.3 and RHOS 4.0. Under the banner “Building an integrated cloud infrastructure”.
Formal Red Hat press releases:
- Red Hat Upgrades Cloud Infrastructure Offerings to Deliver on the Open Hybrid Cloud Vision
- Red Hat Enterprise Virtualization 3.3 Enables OpenStack-ready Cloud Infrastructure
Some press coverage:
- Red Hat Enterprise Virtualization 3.3 Gets Real
- Red Hat ups its virtualization and cloud game
- Red Hat revamps cloud portfolio : Brings OpenStack closer to enterprise
- Red Hat Cloud Infrastructure 4.0 brings greater OpenStack integration
VMware: Citi Ups to Buy on Enterprise Enthusiasm, Waning of OpenStack Threat
Shares of VMware (VMW) are up $1.36, or 1.4%, at $99.69, after Citigroup’s Walter Pritchard this morning raised his rating on the shares to Buy from Neutral, and raised his price target to $120 from $87, writing that his conversations with software resellers, and “deeper modeling work” suggest to him that growth trends seen in the latter half of 2013 “remain sustainable into 2014.”
Red Hat: We CAN be IaaSed about OpenStack cloud
10 years after Red Hat got serious on enterprise Linux, the company is re-organised for enterprise cloud. The Linux distro last week scraped up its Linux, virtualisation, OpenStack and cloud management businesses into a new infrastructure-as-a-service (IaaS) unit.
Also created in the shuffle was an applications platform group responsible for JBoss and OpenShift. The existing storage and big data units continue as before. The purpose of the reorganisation? To drive “consistent strategy and story to customers” of a cause Red Hat calls the “hybrid cloud” according to the new infrastructure unit’s chief, Tim Yeaton.
A job ad indicates GoDaddy plans to adopt OpenStack. It looks like GoDaddy is planning to use OpenStack internally. The company has been advertising to hire an engineering director who will “lead GoDaddy’s internal infrastructure-as-a-service project by adopting and contributing to OpenStack,” according to an ad posted to LinkedIn and the OpenStack Foundation website.
OpenStack development projects aim to crumble adoption barriers
As a new year dawns, OpenStack development focuses on fixing the problems that hold the open source cloud platform back from enterprise adoption. OpenStack developers have created projects to mitigate usability and scalability issues, and increase enterprise production instances of OpenStack, though these projects are still either in incubation or were very recently released. Most prominent is a multi-project program called TripleO, or OpenStack on OpenStack. (also includes link to Rally benchmark)
IBM Explains Its Participation on the OpenStack Foundation Board of Directors
VIDEO: Todd Moore, director, IBM Standards and Partnerships, discusses his participation as a member of the OpenStack board of directors. (Interesting take from IBM rep to the board on how the board and OpenStack Foundation operates)
--end--
Thanks for installing an Intel® Software Development Product
Free Technical Webinars
Stay current on the latest capabilities in Intel Software Development Tools
Intel® Premier Support
Sign up for support and the latest product information
Intel® SDP Forums
A great resource for development and tools questions
Intel® Development Tools
Get the latest information on Intel software development products
Download OpenCL™
Are you interested in using OpenCL?
GCC* 4.9 OpenMP code cannot be linked with Intel® OpenMP runtime
GCC* 4.9 was released on April 22, 2014. This release now supports Version 4.0 of the OpenMP* specification for the C and C++ compilers. The interface between the compilers and the GCC OpenMP runtime library (libgomp) was changed as part of this development. As a result, code compiled by GCC 4.9 using the –fopenmp compiler option cannot be successfully linked with the Intel® OpenMP runtime library (libiomp5), even if it uses no new OpenMP 4.0 features. Linking may fail with a message such as “undefined reference to `GOMP_parallel'”, or (if both libiomp5.so and libgomp.so are linked in) linking may appear to succeed, but the executable code may crash at runtime since having two different OpenMP runtimes linked into the same process is fatal.
Intel is working to restore the ability to link OpenMP code compiled by GCC 4.9 with OpenMP code compiled by the Intel compilers. In the meantime, we recommend against using GCC 4.9 –fopenmp to compile code that you plan to link with anything containing Intel-compiled OpenMP code, including the Intel® Math Kernel Library (MKL) and Intel® Integrated Performance Primitives (IPP) performance libraries.
Intel Contributions to OpenStack* Software Releases "Havana" & "Icehouse"
As an OpenStack gold member and Top 10 contributor, Intel leads blueprints for:
- CPU Feature Detection
- PCIe SR-IOV Accelerators
- OVF Meta-Data Import
- Intelligent workload scheduling—enhanced usage statistics allow advanced scheduling decisions
- Filter scheduling in Cinder—enables differentiated service with different storage back-ends
- Intel® TXT trusted hosts
- Trusted Boot on OpenStack hosts
- Open Attestation (OAT) software verifies host trust status
- Schedule VMs on trusted hosts
- Key Manager
- OpenStack Security Guide
- Work-in-process: Trusted geo-location* for compute and storage
- Work-in-process: Advanced Network Service Framework for Network Function Virtualization (NFV)
Download the poster below:
2014 Mainstream Enterprise Cloud Adoption of OpenStack* Software
OpenStack participation leads most other open source software communities, and private cloud is the driving force behind its mainstream adoption. Learn more from our informative poster. Download it, below:
Getting Kernel-Based Virtual Machine (KVM) to Work with Intel® Xeon Phi™ Coprocessors
The current Kernel-based Virtual Machine (KVM) software does not recognize the existence of Intel® Xeon Phi™ coprocessors. In order to make the KVM recognize the coprocessors, we provide patches under the GPL license, to rebuild the kernel and qemu-kvm packages. The patches provided here are used for Red Hat Enterprise Linux* 6.2 (RHEL* 6.2).
Attached is a step-by-step procedure on how to make KVM on RHEL* 6.2 recognize Intel® Xeon Phi™ coprocessors, including a zip file of the patches.
*Other names and brands may be claimed as the property of others.
Applying Vectorization Techniques for B-Spline Surface Evaluation
Abstract
In this paper we analyze relevance of vectorization for evaluation of Non-Uniform Rational B-Spline (NURBS) surfaces broadly used in Computer Aided Design (CAD) industry to describe free-form surfaces. NURBS evaluation (i.e. computation of surface 3D points and derivatives for the given u, v parameters) is a core component of numerous CAD algorithms and can have a significant performance impact. We achieved up to 5.8x speedup using Intel® Advanced Vector Extensions (Intel® AVX) instructions generated by Intel® C/C++ compiler, and up to 16x speedup including minor algorithmic refactoring, which demonstrates high potential offered by the vectorization technique to NURBS evaluation.
Introduction
Vectorization, or Single Instruction Multiple Data (SIMD), is a parallelization technique available on modern computer processors, which allows to apply the same computational operation (e.g. addition or multiplication) to several data elements at once. For example, on a processor with a 128 bit register a single addition operation can add 4 pairs of integers (each takes 32 bits) or 2 pairs of doubles (64 bits each). With the help of vectorization one can speed up computations due to reduced time required to process the same data sets. SIMD was introduced with Intel® Architecture Processors way back in 1990es, with MMX™ technology as its first generation.
In this paper we analyze relevance of vectorization for evaluation of NURBS surfaces [1]. NURBS is a standard method used in CAD industry to describe free-form surfaces, e.g. car bodies, ship hulls, aircraft wings, consumer products and so on. Examples of 3D models (from [3]) containing NURBS surfaces are given on Fig.1:
![]() | ![]() | ![]() |
NURBS evaluation (i.e. a computation of surface 3D points and derivatives) is a core component of numerous CAD algorithms. For instance...
(For further reading please refer to the attached pdf document)
Delivering Intel® Run Sure technology with Intel® Xeon™ Processor Family
The Intel® Xeon™ processor E7-8800/4800/2800 v2 product Family introduces Intel® Run Sure Technology to increase uptime/availability and to protect data integrity.
This product family brings a new reliability, availability and serviceability (RAS) feature called Machine Check Architecture Recovery (MCA recovery) execution path that allows fault recovery through the operating system (OS) and at the application layer. This presentation talks about the Intel® Run Sure Technology, stresses the importance of this technology and points out reasons why customers should care about it. This presentation also goes into detail on how MCA recovery execution path works and discusses how to develop recovery-aware applications.
LAMMPS* for Intel® Xeon Phi™ Coprocessor
Purpose
This code recipe describes how to get, build, and use the LAMMPS* code for the Intel® Xeon Phi™ coprocessor.
Introduction
Large-scale Atomic/Molecular Massively Parallel Simulator (LAMMPS*) is a classical molecular dynamics code. LAMMPS has potentials for solid-state materials (metals, semiconductors), soft matter (biomolecules, polymers), and coarse-grained or mesoscopic systems. LAMMPS can be used to model atoms, or, more generically, as a parallel particle simulator at the atomic, meso, or continuum scale.
LAMMPS runs on single processors or in parallel using message-passing techniques with a spatial-decomposition of the simulation domain. The code is designed to be easy to modify or extend with new functionality.
LAMMPS is distributed as open source code under the terms of the GNU Public License. The current version can be downloaded at http://lammps.sandia.gov/download.html. Links are also included to older F90/F77 versions. Periodic releases are also available on SourceForge*.
LAMMPS is distributed by Sandia National Laboratories, a U.S. Department of Energy laboratory. The main authors of LAMMPS are listed on the LAMMPS site along with contact info and other contributors. Find out more about LAMMPS at http://lammps.sandia.gov.
Code Support for Intel® Xeon Phi™ coprocessor
LAMMPS* with Intel Xeon Phi coprocessor support is expected to be released as an Intel-optimized package between July and September of 2014. The release will include support for potentials to allow simulation of soft matter, biomolecules, and materials. Contact your Intel representative about access prior to September, 2014.
Build Directions
Building LAMMPS for Intel Xeon Phi coprocessor is similar to a normal LAMMPS build. A makefile supporting offload and vectorization for CPU routines will be included. An example build will include the following code:
> source /opt/intel/compiler/2013_sp1.1.106/bin/iccvars.sh intel64
> source /opt/intel/impi/4.1.2.040/bin64/mpivars.sh
> cd src
> make yes-user-intel
> make intel_offload
> echo "LAMMPS executable is src/lmp_intel_offload"
Run Directions
To run LAMMPS on Intel Xeon Phi coprocessor:
- Edit your run script, like you would with other packages (OPT, GPU, USER-OMP). See the figure below.
- Run LAMMPS as you would normally. The modified code handles the offloading to the coprocessor. See the figure below.
LAMMPS will simulate the time evolution of the input system of atoms or other particles, as specified in the input script, writing data, including atom positions, thermodynamic quantities, and other statistics computations.
Expected output and performance can be checked with comparison to the log files in the examples directory provided.
Optimizations and Usage Model
A load balancer offloads part of neighbor-list and non-bond force calculations to the Intel Xeon Phi coprocessor for concurrent calculations with the CPU. This is achieved by using the offload API to run calculations well suited for many-core chips on both the CPU and the coprocessor. In this model, the same C++ routine is run twice, once with an offload flag, to support concurrent calculations.
The dynamic load balancing allows for concurrent 1) data transfer between host and coprocessor, 2) calculations of neighbor-list, non-bond, bond, and long-range terms, and 3) some MPI* communications. It continuously updates the fraction of offloaded work to minimize idle times. The Standard LAMMPS "fix" object manages concurrency and synchronization.
The Intel package adds support for single, mixed, and double-precision calculations on both CPU and coprocessor, and vectorization (AVX on CPU / 512-bit vectorization on Phi™). This can provide significant speedups for the routines on the CPU, too.
Performance Testing
The advantages using the Intel package are illustrated below with comparison to the baseline MPI/OpenMP* routines in LAMMPS and the optimized routines running on the CPU only or the CPU with offload to the coprocessor. Results are provided for the Rhodopsin* benchmark distributed with LAMMPS scaled to 256,000 atoms.
The Rhodopsin benchmark simulates the movement of a protein in the retina that plays an important role in the perception of light. The protein is simulated in a solvated lipid bilayer using the CHARMM* force field with Particle-Particle Particle-Mesh long-range electrostatics and SHAKE* constraints. The simulation is performed at a temperature of 300K and pressure of 1 atm. The results on a single node and 32 nodes of the Endeavor cluster (configuration below) are shown, demonstrating a speedup of up to 2.15X when using the Intel Xeon Phicoprocessor.
Figure Right: Rhodopsin protein benchmark with atoms in initial configuration.
Testing Platform Configurations
The following hardware was used for the above recipe and performance testing.
Endeavor Cluster Configuration:
- 2-socket/24 cores:
- Processor: Intel® Xeon® processor E5-2697 V2 @ 2.70GHz (12 cores) with Intel® Hyper-Threading Technology4
- Network: InfiniBand* Architecture Fourteen Data Rate (FDR)
- Operating System: Red Hat Enterprise Linux* 2.6.32-358.el6.x86_64.crt1 #4 SMP Fri May 17 15:33:33 MDT 2013 x86_64 x86_64 x86_64 GNU/Linux
- Memory: 64GB
- Coprocessor: 2X Intel Xeon Phi coprocessor 7120P: 61 cores @ 1.238 GHz, 4-way Intel Hyper-Threading Technology, Memory: 15872 MB
- Intel® Many-core Platform Software Stack Version 2.1.6720-19
- Intel® Compiler 2013 SP1.1.106 (icc version 14.0.1)
- Compile flags:
-O3 -xHost -fno-alias -fno-omit-frame-pointer -unroll-aggressive -opt-prefetch
-mP2OPT_hpo_fast_reduction=F -offload-option.mic.compiler,"-fimf-domain-exclusion=15
-mGLOB_default_function_attrs=\"gather_scatter_loop_unroll=5\"
OpenGL* ES 3.0 Instanced Rendering
This Android OpenGL ES 3.0 Sample was written by Cristiano Ferreira - Software Engineer at Intel Corporation.
By batch-rendering multiple versions of the same mesh, instanced rendering can help developers using OpenGL* ES 3.0 and later dramatically improve performance and resource efficiency. The sample code introduced here demonstrates a simple technique for using this capability.
Instanced rendering allows for the reuse of geometry information, to render multiple instances of the same mesh with a single API call. Developers can use uniforms to apply unique attributes to specific instances, which provides for variation using visual properties such as texture. By reducing overhead—and therefore resource requirements—to render large numbers of elements, instanced rendering offers the potential to improve visual experiences, especially on hardware-constrained mobile devices.
Instancing was first introduced in OpenGL 3.1 as an arb extension (ARB_draw_instanced). This capability has now been added to the mobile space, with its inclusion as a core feature in OpenGL ES 3.0.
Downloading and installing the sample
The code sample is available for download from GitHub. To build and deploy the application to your Android device, choose either of the approaches described below.
Approach 1: Use BUILDANDROID.BAT
- Navigate to InstancingAndroid\Utilities
- Run buildandroid.bat
Approach 2: Build from the command line
- Navigate to InstancingAndroid\InstancingAndroid
- Run the following:
android update project –p .
ndk-build
ant debug
ant installd
Details of the implementation
This sample implements instancing by means of a uniform buffer that contains transform matrices for the model instances. The implementation operates as follows:
- The first step is filling the buffer with our transform data.
- When rendering, we simply call glDrawElementsInstanced instead of glDrawElements and pass in the number of instances as a parameter.
- Submitting the geometry information only once, glDrawElementsInstanced uses those same resources repeatedly to draw the desired number of instances.
- Each instance is assigned a unique identifier, as a value of gl_InstanceID that ranges from 0 up to ((num instances)-1). That value is used as an index to the uniform buffer to extract the current instances transform matrix and other properties.
While instancing does not require significant added work on the developer’s part, it can significantly increase rendering efficiency and performance.
Performance comparison: instanced versus non-instanced rendering
Instanced rendering is traditionally used for very large numbers of instances, on relatively simple (low poly) meshes. As shown in this sample, however, this capability can also be used effectively for fairly complex structures. The following chart compares the performance using an instanced draw call versus the non-instanced approach with multiple draw calls. As the number of instances increases, instanced rendering demonstrates a clear performance benefit, measured in terms of higher frame rates.
Conclusion
The instancing technique shown in this sample gives developers a simple means of substantially increasing performance in their OpenGL ES 3.0 applications. Instanced rendering lowers the resource requirements to provide rich, dynamic backgrounds, allowing developers to replace more limited billboarding techniques. That helps bring visual experiences that approach desktop-quality 3D graphics on mobile devices.
Additional Resources
OpenGL ES: The Standard for Embedded Accelerated 3D Graphics is Khronos Group’s official OpenGL ES page; it describes the standard and provides links to specifications, header files, and reference materials.
Android Developer Guide for OpenGL ES provides background and guidance for use of the OpenGL ES API with Android, including management of compatibility between the two.
OpenGL® ES 3.0 and Beyond: How To Deliver Desktop Graphics on Mobile Platforms describes capabilities of both OpenGL ES 3.0 and 3.1, including how they are supported on Intel’s Bay Trail platform.
Intel® Open Source Technology Center Intel Graphics for Linux* provides downloads, documentation, and community resources related to graphics for Linux on Intel® platforms.
OpenGL* ES 3.0 Precompiled Shaders
Another great Android OpenGL ES 3.0 sample from Cristiano Ferreira - Graphics Software Engineer with Intel Corporation.
Programmatically compiling all shaders the first time an application is run and saving the binaries for reuse can significantly reduce load times for games in subsequent runs. The OpenGL* ES 3.0 sample code introduced here demonstrates a simple implementation of this capability.
Precompiling shaders is a technique to improve the user experience for games and other applications that use large numbers of complex shaders, by reducing load times.
- The first time the application is executed, it compiles all of the shaders, and the binaries produced are saved to local storage.
- For subsequent runs of the application, shader compilation is not necessary, because the required binaries have already been produced and are available at runtime.
This approach enhances efficiency for resource-constrained mobile devices and improves responsiveness from the user’s perspective.
A key benefit of the precompiled shader approach discussed here, relative to some alternatives, is that the shader binaries are built natively for the execution platform, using the target device’s actual runtime environment. That overcomes limitations faced by developers who seek a similar result by compiling shaders and packaging the binaries as assets before distributing the application, for example, which can result in cross-platform incompatibilities.
Downloading and installing the sample
The code sample is available for download from GitHub. To build and deploy the application to your Android device, follow the steps below.
- Navigate to PrecompiledShaders\projects\android
- Run the following:
android update project –p .
ndk-build
ant debug
ant installd
Details of the implementation
This sample implements shader precompilation by caching the shader binary on the first run and then using that file on each subsequent run. The implementation operates as follows:
- Cache the shader on the first run only.
- Compile and link the program in the usual way.
- Use glGetProgramBinary to save the compiled/linked program binary into an array.
- Load the shader.
- Use glProgramBinary to load the program binary into the program object.
Performance comparison: precompiled versus runtime-compiled shaders
The following chart compares load times for precompiled shaders with those for shaders compiled at runtime, using the code sample introduced here with a very simple shader. These results clearly demonstrate the value of shader precompilation.
Conclusion
While the shader precompilation technique used in this sample doesn’t require significant development effort, it is a flexible, cross-platform approach to decrease load times significantly. This approach should be used routinely to optimize the user experience within the hardware constraints of mobile devices.
Additional Resources
OpenGL ES: The Standard for Embedded Accelerated 3D Graphics is Khronos Group’s official OpenGL ES page; it describes the standard and provides links to specifications, header files, and reference materials.
Android Developer Guide for OpenGL ES provides background and guidance for use of the OpenGL ES API with Android, including management of compatibility between the two.
OpenGL® ES 3.0 and Beyond: How To Deliver Desktop Graphics on Mobile Platforms describes capabilities of both OpenGL ES 3.0 and 3.1, including how they are supported on Intel’s Bay Trail platform.
Intel® Open Source Technology Center Intel Graphics for Linux* provides downloads, documentation, and community resources related to graphics for Linux on Intel® platforms.
Android Texture Compression - a comparison study with code sample
This is a code sample written by Cristiano Ferreira, Graphics Software Applications Engineer at Intel Corporation. Source code for this sample is available here.
Introduction
The application of an image, or texture, to a 2D or 3D model to enhance graphical detail is a very common technique in the field of computer graphics. Android* allows the usage of a variety of texture compression file formats, each of which has its own set of advantages and disadvantages. The Android Texture Compression sample allows developers to easily compare textures of five different texture compression file formats: Portable Network Graphics* (PNG), Ericsson Texture Compression* (ETC), Ericsson Texture Compression 2* (ETC2), PowerVR Texture Compression* (PVRTC), and S3 Texture Compression* (S3TC), which is also known as DirectX Texture Compression* (DXTC). This sample demonstrates how to load and use these different formats with OpenGL ES* on Android. All supported texture formats are shown side-by-side so the relative size and quality can be observed. Choosing the right compression allows the developer to balance app size, visual quality, and performance.
The sample loads each texture format, determines the mapping coordinates of the texture, and displays a portion of each of the textures. The final composition will display the full image/texture, but as four separate, format-specific textures. They are individually labeled at the top of the screen and the file sizes are provided on a small bar at the bottom of the screen.
Background on Principles/Related Terms and Texture Formats
Texture mapping is a method by which an image is applied to the surface of a shape or polygon. A helpful analogy to keep in mind is picturing the texture as wrapping paper, and the 3D model as a gift box to be wrapped. This is why this process is also called “texture wrapping.”
Figure 1 - 1 is solely the polygon/shape tank model and 2 is the texture-mapped model
Mipmaps are an optimized group of images that are generated with the primary texture. They are typically created for the purpose of improving rendering speed and reducing aliasing artifacts. Each mip (bitmap image of the collection of mipmap) is a lower resolution version of the primary texture, utilized when viewing the original texture from a distance or a downsized version of it. The creation and implementation of mipmaps comes from the basic concept that we cannot pick up as much detail in an object when it is located far away from us or when the object is miniscule. Based on this idea, different mips can be used to represent different parts of the texture/image based on the size of the objects. This increases rendering speed because the simplified mips have a much lower texel (overall number of texture pixels) count—less pixels to be processed. Additionally, since mipmaps are essentially anti-aliased, the number of noticeable artifacts is also greatly reduced. The support for mipmaps in PNG, ETC (KTX), ETC2 (KTX), PVRTC, and S3TC are included in the sample.
Portable Network Graphics (PNG)
PNG is a bitmapped image format primarily noted for its lossless data file compression. The image format is equipped with support for palette-based images (24 bit RGB or 32 bit RGBA) or grayscale images (with and without an alpha channel).
Advantages:
- Has a lossless compression scheme and high visual quality
- Handles both 8-bit and 16-bit transparency
Disadvantages:
- Large file size; this will increase app size and memory bandwidth requirements
- Highest GPU cost (i.e. worst performance)
Ericsson Texture Compression (ETC)
Ericsson Texture Compression is a texture compression format that operates on 4x4 blocks of pixels. Originally Khronos used Ericsson Texture Compression as the standard for OpenGL ES 2.0 (this version is also known as ETC1). Therefore, this texture compression format is available on nearly all Android devices. Recently with the release of OpenGL ES 3.0, a reworked version of ETC1, known as ETC2, was implemented as the new standard. The main differences between the two schemes is the algorithm which operates on each pixel group. The improvements in the algorithm result in higher fidelity output when it comes to finer details. The finer quality of the image comes without the cost of additional space.
ETC1 and ETC2 both support compression of 24-bit RGB data, but they do not support the compression of any images/textures containing alpha components. In addition, there are two different file formats that both fall under the category of ETC texture compression: KTX and PKM. KTX is the standard Khronos Group compression format, and it provides a container for multiple images/textures. When mipmaps are generated with KTX, only one KTX file is created. On the other hand, PKM is a much simpler file format used mainly to contain single compressed images. Generating mipmaps in this case would create multiple PKM files instead of a single file, and so as a consequence, this format is not recommended for that purpose.
Advantages:
- File size is considerably smaller in comparison to the PNG texture compression format
- GPU hardware acceleration supported on nearly all Android devices
Disadvantages:
- Quality is not as high as PNG texture compression (ETC is a lossy compression format)
- Does not support alpha channels/components
Example of Tools Used For Compression:
- Mali* Texture Compression Tool (Developer Center)
- ETC-Pack Tool
PowerVR Texture Compression (PVRTC)
PowerVR Texture Compression is a lossy, fixed-rate texture compression format utilized primarily in Imagination Technologies’ PowerVR* MBX, SGX, and Rogue technologies. It is currently being employed in all iPhone*, iPod*, and iPad* devices as the standard compression format. Unlike ETC and S3TC, PVRTC is not block-based but rather involves the bilinear upscaling and low-precision blending of two low-resolution images. In addition to the unique process of compression by the PVRTC format, it also supports RGBA (alpha channel supported) for both the 2-bpp (2 bits per pixel) and 4-bpp (4 bits per pixel) options.
Advantages:
- Supports alpha channels/components
- Supports RGBA data for both 2-bpp and 4-bpp modes
- File size is much smaller than one using PNG texture compression
- GPU hardware acceleration on PowerVR GPUs
Disadvantages:
- Quality is not as high as PNG texture compression (PVRTC is a lossy compression format)
- PVRTC is only supported on PowerVR hardware
- Only square (power-of-two) dimension textures are determined to work consistently, although in some cases, rectangular support is provided for the compressed texture
- Compressing textures into this format can be slow
Tool Used For Compression:
S3 Texture Compression (S3TC) or DirectX Texture Compression (DXTC)
S3 Texture Compression is a lossy, fixed-rate, texture compression format. This style of compression makes S3TC an ideal texture compression format for textures used in hardware-accelerated 3D computer graphics. Following the integration of S3TC with Microsoft’s DirectX* 6.0 and OpenGL 1.3, the compression format became much more widespread. There are at least 5 different variations of the S3TC format (including DXT1 through DXT5). The sample supports the commonly used variations (DXT1, DXT3, and DXT5).
DXT1: DXT1 is the smallest mode of S3TC compression; it converts each block of 16 pixels into 64 bits. Additionally, it is composed of two different 16-bit RGB 5:8:5 color values and a 4x4 2-bit lookup table. DXT1 does not support alpha channels.
DXT3: DXT3 converts each block of 16 pixels into 128 bits and is composed of 64 bits of alpha channel data and 64 bits of color data. DXT3 is a good format choice for images or textures with sharp alpha transitions (opaque versus translucent).
DXT5: DXT5 converts each block of 16 pixels into 128 bits and is composed of 64 bits of alpha channel data and 64 bits of color data. DXT5 is a good format choice for images or textures with gradient alpha transitions.
Advantages:
- File size is considerably smaller in comparison to the PNG texture compression format.
- Decent quality, low banding (artifacts not too visible)
- Good speed for compression/decompression
- GPU hardware acceleration for a wide range of video chip parts: support is almost universal on desktop, but it still needs to grow on Android devices
Disadvantages:
- Quality is not as high as PNG texture compression (S3TC is a lossy compression format)
- Not supported on all Android devices
Tool Used for Compression:
- DirectX Texture Tool from DirectX (included in the DX SDK)
Accessing the Texture Data
Most texture compression file formats have a header that is placed before the actual texture data. The header usually contains data regarding the name of the texture compression format, the width of the texture, the height of the texture, the depth of the texture, the size of the data, the internal format, and other specific properties of the file.
Our goal is to load and map texture data from each of the different texture compression files to a 2D model for comparison of quality and file size. The headers that come before the texture data is not to be included as part of the texture to be mapped, as doing so would distort the image/texture representation. The file headers all vary depending on the file compression format that is being considered, and as such, each texture compression file format needs individual support in order to load the textures and map them properly.
IMPORTANT:
The PVRTC header is packed due to the presence of the 64-bit pixel format data member (mPixelFormat in the sample). ARM attempts to align the header by padding it with 4 additional bytes, making the header a total of 56 bytes instead of the raw 52 bytes. This in turn causes the image to be distorted when displayed on an ARM device. Intel devices do not pad the header, and so isn’t an issue. Packing the header solves the ARM padding issue, and the texture displays correctly on both ARM and Intel devices.
Figure 3 – Image of ARM Padding Issue with PVRTC in Previous Sample
Loading and Supporting the Texture Formats:
Loading PNG
Mipmaps are taken care of in PNG by a simple function: glGenerateMipmap – a predefined function from Khronos OpenGL designed for this specific purpose. Sean Barrett’s public domain stb_image.c was utilized in the reading and loading of the PNG files (as well as locating and pinpointing the texture data to be processed). The following is a piece of code that initializes the texture and provides mipmap support for the PNG compression format.
// Initialize the texture
glTexImage2D( GL_TEXTURE_2D, 0, format, width, height, 0, format, GL_UNSIGNED_BYTE, pData );
// Mipmap support
glGenerateMipmap( GL_TEXTURE_2D );
Loading ETC / ETC2
As mentioned earlier, ETC is composed of two different format types—KTX and PKM. KTX is the standard compression format, used as a container for multiple images/textures, and is ideal for mipmapping. PKM, on the other hand, is designed for simple single texture compression, and so generating mipmaps gives rise to multiple PKM files, which is inefficient. For this reason, mipmap support for ETC texture compression in the sample app is restricted to KTX file compression only. Khronos provides an open source C library (libktx) in which KTX texture loading with mipmaps is supported. We took advantage of this tool and implemented the code in a texture loading function called LoadTextureETC_KTX. The function used to actually load the KTX texture compression format file is ktxLoadTextureM (loads the desired texture from data in memory). This function (ktxLoadTextureM) was provided in the library (libktx) and is documented at the Khronos site (in “Resources” below).
The following is a piece of code that initializes the texture and provides mipmap support for the ETC (KTX) compression format:
// Generate handle & Load Texture
GLuint handle = 0;
GLenum target;
GLboolean mipmapped;
KTX_error_code result = ktxLoadTextureM( pData, fileSize, &handle, &target, NULL, &mipmapped, NULL, NULL, NULL );
if( result != KTX_SUCCESS )
{
LOGI( "KTXLib couldn't load texture %s. Error: %d", TextureFileName, result );
return 0;
}
// Bind the texture
glBindTexture( target, handle );
Loading PVRTC
Providing mipmap support for PVRTC textures was a bit trickier. After reading through the header, the offset is defined as the size of the header plus the metadata size (metadata follows the header and is also not part of the actual texture data). For each of the mips generated, pixels are grouped into blocks (different depending on if it is 4 bits per pixel or 2 bits per pixel—both valid PVRTC formats). Next, clamping occurs, and so height and width of the blocks are limited to certain boundaries. Then, the function glCompressedTexImage() is called to identify a two-dimensional image in the PVRTC compressed format. Following that, the pixel data size is calculated and then is added to the offset in order to group the set of pixels in the next mip. This process is repeated until there are no more mips to operate on.
// Initialize the texture
unsigned int offset = sizeof(PVRHeaderV3) + pHeader->mMetaDataSize;
unsigned int mipWidth = pHeader->mWidth;
unsigned int mipHeight = pHeader->mHeight;
unsigned int mip = 0;
do
{
// Determine size (width * height * bbp/8), min size is 32
unsigned int pixelDataSize = ( mipWidth * mipHeight * bitsPerPixel ) >> 3;
pixelDataSize = (pixelDataSize < 32) ? 32 : pixelDataSize;
// Upload texture data for this mip
glCompressedTexImage2D(GL_TEXTURE_2D, mip, format, mipWidth, mipHeight, 0, pixelDataSize, pData + offset);
checkGlError("glCompressedTexImage2D");
// Next mips is half the size (divide by 2) with a min of 1
mipWidth = ( mipWidth >> 1 == 0 ) ? 1 : mipWidth >> 1;
mipHeight = ( mipHeight >> 1 == 0 ) ? 1 : mipHeight >> 1;
// Move to next mip
offset += pixelDataSize;
mip++;
} while(mip < pHeader->mMipmapCount);
Loading S3TC
After loading an S3TC texture file, determining the format, and reading past the header, mipmap support takes place. Each mip is looped through and pixels are grouped into blocks. Then, the function glCompressedTexImage is called to identify a two-dimensional image in the S3TC compressed format. The aggregate data size of the blocks is then added to the offset in order to move to the next mip and perform the same actions. The process repeats until there are no more mips to operate on. The following is a piece of code that initializes the texture and provides mipmap support for the S3TC compression format.
// Initialize the texture
// Uploading mipmaps
unsigned int offset = 0;
unsigned int width = pHeader->mWidth;
unsigned int height = pHeader->mHeight;
unsigned int mip = 0;
do
{
// Determine size
// As defined in extension: size = ceil(<w>/4) * ceil(<h>/4) * blockSize
unsigned int Size = ((width + 3) >> 2) * ((height + 3) >> 2) * blockSize;
glCompressedTexImage2D( GL_TEXTURE_2D, mip, format, width, height, 0, Size, (pData + sizeof(DDSHeader)) + offset );
checkGlError( "glCompressedTexImage2D" );
offset += Size;
if( ( width <<= 1 ) == 0) width = 1;
if( ( height <<= 1 ) == 0) height = 1;
mip++;
} while( mip < pHeader->mMipMapCount );
Conclusion
Depending on the situation it is used in, proper texture compression may improve visual quality, decrease the size of an app considerably, and greatly enhance performance. Optimal texture compression provides substantial advantages to developers and their applications. The Android Texture Compression sample app demonstrates how to load and access the most popular texture formats that can be found on Android. Go download the source code and incorporate the best texture compression in your next project.
About the Author:
William Guo created this sample while he was an intern with Intel’s Personal Form Factor team while working on Intel phones and tablets. He is currently attending the University of California, Berkeley as an up & rising sophomore with an expected graduation date of May 2015. He intends to major in Electrical Engineering and Computer Science with a possible minor in psychology.
Sample and article updated to include ETC2 format by Cristiano Ferreira who is currently working for Intel in developer relations. Cristiano can be contacted at Cristiano.ferreira@intel.com for questions regarding the sample.
Updated artwork for the ETC2 sample was provided by Jeffery A. Williams, Lead Digital Content Designer in the Game Development Experience group under Developer Relations at Intel Corporation.
Resources:
- Texture Mapping Figure 1:
http://upload.wikimedia.org/wikipedia/commons/3/30/Texturedm1a2.png - Mipmapping Image Figure 2:
http://en.wikipedia.org/wiki/File:MipMap_Example_STS101.jpg - PNG* Info:
http://en.wikipedia.org/wiki/Portable_Network_Graphics
http://www.libpng.org/pub/png/
- ETC* (KTX* and PKM*) Info:
- PVRTC* Info:
- S3TC* Info:
- Source Code:
*Other names and brands may be claimed as the property of others
Data Plane Development Kit Overview
The Data Plane Development Kit (DPDK) is a key ingredient addressing the data plane needs of Telecom and Networking applications implemented on general purpose processors. It is an optimized library in Linux User Space offering a higher level of packet processing throughput than standard Linux network interfaces.
DPDK fundamentals:
The DPDK was initially defined and developed by Intel, but it now includes contributions from many individuals and companies as an open-source (BSD license) community project.
Download the poster below, and be sure to visit http://dpdk.org/.
Intel® Graphics Performance Analyzers (Intel® GPA) FAQ
Intel® Graphics Performance Analyzers (Intel® GPA) FAQ
Table of Contents
General Product Information
- What is Intel GPA, and what do I use it for?
- Which platforms does Intel GPA support?
- Is the product really free?
- How does Intel GPA compare with other Intel analysis products?
- What are the key advantages of Intel GPA?
- Have developers been able to use Intel GPA to improve the performance of "real world" games?
- Where do I find out more information about Intel GPA?
Using Intel® GPA
- How do I start using Intel GPA?
- How difficult is it to learn how to use the product?
- What kinds of problems can Intel GPA find?
- How do the Intel GPA System Analyzer and the Intel GPA Frame Analyzer help identify optimization opportunities in my game?
- How does the Intel GPA Platform Analyzer help identify optimization opportunities in my game?
- Will Intel GPA work with any graphics application?
- Do I have to modify the software for my game in order to be able to use Intel GPA?
Technical Requirements
- What are the Intel® GPA system requirements?
- What graphics devices does Intel® GPA support?
- Does Intel® GPA work with netbook computers?
- Is Intel® GPA Frame Analyzer supported on Windows* 32-bit platforms?
- Do I need to "root" my device to analyze Android* workloads with Intel® GPA tools?
- I can't analyze my Android* applications Intel® GPA tools. Do I need to build my apk with any special settings?
Product Support
- How do I get support for Intel® GPA?
- Will Intel® GPA support all future Intel graphics devices?
- What should I expect to see if I attempt to run Intel® GPA on third-party graphics devices?
- What is your plan for supporting OpenGL*?
- How do I submit suggestions or feedback to the development team?
General Product Information
Q: What is Intel GPA, and what do I use it for?
A: Intel GPA is a powerful, agile tool suite enabling game developers to utilize the full performance potential of their gaming platform, including (though not limited to) Intel® Core™ and Intel® HD Graphics, as well as Intel phones and tablets running the Android* OS. Intel GPA visualizes performance data from your application, enabling you to understand system-level and individual frame performance issues, as well as allowing you to perform 'what-if' experiments to estimate potential performance gains from optimizations.
Q: Which platforms does Intel GPA support?
A: Intel GPA supports multiple analysis and target operating systems. Here is a table summarizing the supported platforms:
Target Platform (where your game runs) | Client/Analysis Platform (your development system) | Target Graphics API |
Microsoft* Windows* 7 (x64 only) OS | Microsoft* Windows* 7/8/8.1 OS | Microsoft* DirectX* 9/9Ex, 10.0/10.1, 11.0 |
Microsoft* Windows* 8/8.1 (x64 only) OS | Microsoft* Windows* 7/8/8.1 OS | Microsoft* DirectX* 9/9Ex, 11.0 Windows* 8/8.1 Store Applications |
Google* Android* 4.0, 4.1, 4.2, 4.4 (limited to Intel® Atom™ based phones and tablets) | Microsoft* Windows* 7/8/8.1 OS Apple* OS X* 10.8, 10.9 Ubuntu* OS 11.10, 12.04 | OpenGL* ES 1.0, 2.0 |
See the Intel GPA Release Notes for detailed product information on each of these platforms.
Q: Is Intel GPA really free?
A: The product is available at no charge for our valued development community -- to download Intel GPA visit the Intel GPA Home Page.
Q: How does Intel GPA compare with other Intel products such as Intel® VTune™ Amplifier XE and Intel® Parallel Studio, and how do I select the right one for my analysis/optimization needs?
A: Intel GPA offers complementary profiling capabilities to other Intel tools focused on debugging and deep hotspot analysis. Intel GPA can help determine whether potential performance bottlenecks exist, and offers the ability to perform "what if" experiments to help optimize the graphics portion of your application. For even deeper performance analysis you can use Intel VTune™ Amplifier XE with Intel GPA to fine-tune games and media for optimal performance, ensuring cores are fully exploited and new processor capabilities are supported to the fullest.
Q: What are the key advantages of Intel GPA?
A: Intel has worked extensively with game developers to create a product that precisely meets their needs, so that they can quickly optimize games. The key advantages of using Intel GPA are:
- Intuitive interface: Quickly find issues, without a lot of clutter; the product's easy workflow fits the way game developers want to optimize their games.
- In-depth, real-time analysis: Identify bottlenecks, experiment with changes, and see results in real time - all within Intel GPA and without modifying the game code.
- Multiple platform support: Optimize games and graphics-intensive applications for Intel systems utilizing processor graphics, or Intel Atom devices running the Android* OS. When possible, Intel GPA accesses hardware metrics in these devices for more accurate measurements of the game's use of the rendering pipeline.
- Task timeline visualization: Use the Intel® GPA Platform Analyzer to see how your task system is balanced (or not) across multiple threads on both the CPU and GPU.
Q: Have developers been able to use Intel GPA to improve the performance of "real world" games?
A: Many developers have utilized Intel GPA to improve game performance on PCs utilizing Intel® Processor Graphics. Many of these games can be found in the Game Gallery. Just a few examples of Intel GPA enabled titles are Need For Speed:World *, DarkSpore*, LEGO Universe*, Civilization V*, Stalker:Call of Pripyat*, Demigod*, EmpireNapoleon:Total War*, and Ghostbusters, The Video Game*. The performance gains in these games resulted in an increased frame rate and/or additional game features that improved the user experience.
Q: Where do I find out more information about Intel GPA?
A: To find out more about the Intel GPA tool suite, visit the Intel GPA Home Page. The product home page provides detailed information about the tool, including information on how to download the tool, training and support resources, and videos on the product to help you get started quickly.
Using Intel® GPA
Q: How do I start using Intel GPA?
A: It is pretty easy to get started with Intel GPA -- most game developers start using Intel GPA immediately after installing the package, since Intel GPA uses standard graphics drivers and does not require modifications to your game code (one exception is if you are trying to perform thread-based analysis with the Intel® GPA Platform Analyzer, which requires that you add some code to designate individual threads). To get you up and running quickly, check out the Intel GPA Online Help, which explains how to use the product features.
Q: How difficult is it to learn how to use the product?
A: Intel GPA features an intuitive user interface that does not require extensive training to quickly access key performance metrics. Therefore, many users will immediately realize many benefits of the product. However, as Intel GPA enables you to perform precise analysis and experiments for every portion of the rendering pipeline, users with a detailed knowledge of Microsoft* DirectX* or OpenGL* ES for mobile devices can quickly utilize even these advanced features.
Q: What kinds of problems can Intel GPA find?
A: If you have performance "hot spots" within your game, Intel GPA can help pinpoint them at the system level, at the frame or sub-frame level, or by visualizing task performance across the CPU/GPU. Once you have identified issues, try different experiments to see the resulting changes in the rendering time as well as the visual effect of these changes. The benefit is that Intel GPA can help improve your frame rate and/or enable you to add new visual effects, while still providing an acceptable level of user interactivity.
Q: How do the Intel GPA System Analyzer and Intel GPA Frame Analyzer help identify optimization opportunities in my game?
A: Intel GPA System Analyzer provides access to system-wide metrics for your game, including CPU, GPU, API, and the graphics driver. The metrics available will vary depending upon your platform, but for both Microsoft* Windows* and Google* Android* you will find a large collection of useful metrics to help quantify key aspects of your application's use of system resources. Within the Intel GPA System Analyzer you can also perform various "what-if" experiments to diagnose at a high level where your game's performance bottlenecks are concentrated.
- If the Intel GPA System Analyzer finds that your game is CPU-bound, perform additional fine-tuning of your application using Intel GPA Platform Analyzer or one of the Intel performance optimization products such as Intel® Parallel Studio or Intel® VTune™ Amplifier XE Performance Profiler.
- If the Intel GPA System Analyzer finds that you game is GPU-bound, use the Intel GPA Frame Analyzer to drill down within a single graphics frame to pinpoint specific rendering problems, such as texture bandwidth, pixel shader performance, level-of-detail issues, or other bottlenecks within the rendering pipeline. For example, using the "simple pixel shader" experiment to determine whether shader complexity is a bottleneck.
Q: How does the Intel GPA Platform Analyzer help identify optimization opportunities in my game?
A: The Intel GPA Platform Analyzer visualizes the execution profile of the tasks in your code on the entire PC platform over time on both the CPU and GPU. This helps you understand task-based issues within your game, enabling you to optimize the compute and rendering tasks across both the CPU and GPU. The Intel GPA Platform Analyzer uses trace data collected during the application run to provide a detailed analysis of how your code executes across all threads, and correlates the CPU workload with that on the GPU.
Q: Though Intel GPA seems to be targeting game developers, will Intel GPA work with other graphics applications?
A: Intel GPA is primarily designed to solve the performance optimization needs of game developers, and for media application developers. However, the features of Intel GPA are broad-based for use with any visual computing application. In other words, our expectation is that anyone developing graphics applications, both "expert" and "novice" alike, should be able to take advantage of the analysis and optimization capabilities of the product.
Q: Do I have to modify the software for my game, or install special drivers, in order to be able to use Intel GPA?
A: The Intel GPA System Analyzer and the Intel GPA Frame Analyzer tools can analyze your game without any code modifications or special libraries. This is possible because Intel GPA accesses the CPU, driver, DirectX*, and GPU metrics directly from the game environment, a big plus for common analysis tasks. For more complex, task-based analysis with the Intel GPA Platform Analyzer, you will benefit by inserting Instrumentation and Tracing Technology (ITT) API calls that tag the various tasks in your game code -- but you will have to do this once, as the ITT library used by Intel GPA is also used by a number of other Intel performance analysis tools.
Technical Requirements
Q: What are the Intel® GPA system requirements?
A: As the specific requirements depend both upon your target platform and analysis platform, read the Intel GPA release notes for detailed system requirements.
Q: What graphics devices does Intel® GPA support?
A: When the target platform is Windows* OS, Intel® GPA supports Intel® HD graphics (including Intel® HD Graphics 2000/3000 or higher). Although Intel GPA may work with other graphics devices, they are unsupported, and some features and metrics may not be available on unsupported platforms. For Android*, Intel GPA supports Intel devices based upon the Intel® Atom™ processor and beta-level support for select ARM*-based devices. See the GPA Release Notes for a break down of supported 3rd party devices and individual tool capabilities on those devices. When using Intel GPA in the client/target mode, the minimum requirements of the client system used to analyze either Windows* or Android* workloads are: Intel Core Processor with a minimum of 2GB of memory, though at least 4GB of memory and a 64-bit OS are highly recommended. When analyzing and taking frame captures of workloads on Android* devices, the target should have a minimum of 1GB system memory. More memory may be required for more complex OpenGL ES* 2.X workloads.
Q: Does Intel® GPA work with netbook computers and Intel Ultrabooks™?
A: Yes, Intel® GPA supports many popular netbook computers and Ultrabook systems. However, lower end systems may not have sufficient resources to run the Intel GPA tools. So if you encounter issues when running Intel GPA System Analyzer HUD or Intel GPA Frame Analyzer, use the client/target ("networked") version of these tools with a more powerful client system. A good suggestion for a client system would be a computer running a 64-bit OS with greater than 4GB of memory.
Q: Is Intel® GPA Frame Analyzer supported on Windows* 32-bit platforms?
A: No - frame captures taken on 32-bit Windows* OS can be opened remotely from Intel GPA Frame Analyzer installed on a 64-bit Windows* OS platform. For more information, see Intel® GPA: Limited support for Windows* OS 32-bit platforms.
Do I need to "root" my device to analyze Android* workloads with GPA tools?
A: No.
I can't analyze my Android* applications Intel® GPA tools. Do I need to build my apk with any special settings?
A: Yes:
Once you have connected the Intel® GPA System Analyzer or Intel® Frame Debugger to the target device, the Application List window displays two groups of applications available on your device:
Analyzable applications - have the proper permissions that enable Intel GPA to analyze any application from this list.
Non-analyzable applications - do not have the proper permissions and need to be modified.
To analyze an application from the Non-analyzableapplications list, modify the application permissions as follows:
Open the AndroidManifest.xml file of your application.
Enable the Internet connection permission: <uses-permission android:name="android.permission.INTERNET">
Enable the debuggable permission: <application android:debuggable="true">
Rebuild the application package and restart the Intel GPA System Analyzer.
The application appears in the Analyzable applications list and can now be analyzed.
Product Support
Q: How do I get support for Intel GPA?
A: The primary support model for Intel GPA is through the product's Support Forum and Knowledge Base articles. At the Support Forum you can ask questions about the product, share your experiences with other users of the product, and ask for assistance should you encounter issues when using Intel GPA. The Knowledge Base contains various technical notes, "tips & tricks", training material, and pointers to other information that may be of interest to both novice and experienced users alike.
Q: Will Intel GPA support all future Intel graphics devices?
A: Intel intends to continue offering the tools that enable developers to take the best advantage of Intel graphics devices, both now and into the future. Intel will continue to identify, with close cooperation from developers, the best tools to enable optimization and performance of these devices.
Q: When analyzing Microsoft DirectX* applications, what should I expect to see if I attempt to use Intel® GPA on non-supported graphics devices?
A: Features and performance will vary based upon the hardware capabilities of these other configurations. For example, on non-supported Windows* OS target devices the Intel GPA System Analyzer cannot provide many detailed GPU metrics, but many of the Intel GPA Frame Analyzer functions work on any graphics device (though again you will typically see fewer GPU metrics on these devices).
Q: What is your plan for supporting OpenGL* on the Windows* OS platform?
A: We are actively exploring enhancing Intel GPA to support OpenGL* on the Microsoft* Windows* OS -- if you have specific OpenGL* needs or feature requests, we would love to hear from you at the Intel GPA Support Forum. If you are analyzing Android* applications on phones or tablets based on Intel Atom processor, the product already supports the OpenGL* ES API on these platforms.
Q: How do I submit suggestions or feedback to the development team?
A: Use the Intel GPA Support Forum to submit suggestions on new features, and/or to comment on the features currently in the product.
* Other names and brands may be claimed as the property of others.