
Thursday May 08, 2008
Intel Threading Building Block library now available on Solaris + Sun Studio
Sun and Intel are collaborating to bring Intel TBB (Threading Building Block) software to the Solaris platform using the Sun Studio compilers. Today's the official launch of this collaborative effort. There is a lot of demand in the field for Intel SW (currently available on Linux and Windows) to be ported to Solaris, and this port nicely fills in one of the interesting gaps. One of my engineers worked collaboratively with Intel to make this happen; the success of this venture will encourage us to collaborate on other things as well. I welcome whole-heartedly this innovative problem solving technique to the Solaris platform; particularly with Sun Studio compilers. Parallelism is a critical area in SW development in our bold new future (together I might venture to add, for Intel and Sun). Sun Studio attempts to provide various high performance solutions; Solaris is a wonderful base to build this on with its built-in Multi-Threading support (from day 1 of Solaris 1.0) and the MT-safe libraries that form the bedrock of a parallel programming base. Intel's TBB complements this solution space nicely by offering a unique approach to simplifying parallelism for a certain kind of C++ problem set.
What is Intel
Threading
Building Block?
Intel invented Threading Building Block (TBB) as a leading-edge,
open-source runtime library with a rich set of templates to
significantly lower the effort required to express parallelism in C++
programs. The opensource
site is here. Some of the benefits of Intel TBB are:
- It requires fewer lines of code to achieve parallelism than
other threading models.
- The applications you write are portable across platforms.
- Since the library is also inherently scalable, no code
maintenance is required as more processor cores become available.
- This C++ runtime library abstracts the low-level threading
details necessary for optimal multi-core performance.
- It uses common C++ templates and coding style to eliminate
tedious threading implementation work.
Solving the parallelism problem for C++ is a tricky one; unlike Fortran
programs that are loop-intensive and thus lend themselves to automatic
parallelization under certain general programming characteristics, C++
templates pose a level of difficulty with iterators and pointers that
optimizers find hard to analyze. TBB is a solution that up-levels the
problem, at least for certain problem sets, to a level of
abstraction for software writers where
low-level parallelism details are automatically handled.
Intel TBB was available for Linux and Windows from
Intel's
product website (here).
A version of TBB that can run on the Solaris platform (x86) is now
being . This version of TBB can be built using the
latest
Sun Studio Express compilers and tools(download a copy from here).
The code changes required to make this work on Solaris using Sun Studio
have been putback to the
opensource site.
Downloading TBB:
You can download TBB (
http://threadingbuildingblocks.org).
Remember to choose the stable version of TBB.
Download both the source version and the Sun binaries available at the
TBB download site.
Use gunzip to unzip the tbb source archive and then extract from the
tar archive, using gtar. A directory named tbb20_010oss_src is
created.
Similarly extract the sun binaries and place them adjacent to the src
directory of the source distribution.
Building TBB for
Solaris:
% cd tbb20_010_oss_src
% gmake
This builds the TBB library and places it in the build directory, for
example,
tbb20_010oss_src/build/SunOS_ia32_suncc_cc5.9_kernel5.10_release.
This directory contains the files libtbb.so and libtbbmalloc.so.
The TBB build also generates two files, tbbvars.csh and tbbvars.sh.
These two files contain useful settings of environment variables such
as LD_LIBRARY_PATH, which are needed for building an example.
If you downloaded the sun binaries for TBB, the shared objects for the
library will be available in the
directory tbb20_20080408oss_src/sun/ia32/cc3.4.3_kernel5.10/lib and the
tbbvars.csh and tbbvars.sh scripts will
be in the directory
tbb20_20080408oss_src/sun/ia32/cc3.4.3_kernel5.10/bin.
You will find more information on TBB at the
Sun Studio Developer Tools
Portal,, in particular check out this
introductory article on TBB .
Heres raising a toast to the happy introduction of this collaborative effort! Congratulations, Intel!!
This could be the start of something new and wonderful together!
Posted by tatkar
( May 08 2008, 09:53:41 AM PDT )
Permalink
Trackback URL: http://blogs.sun.com/tatkar/entry/intel_threading_building_block_library
looks interesting. Will a SPARC/Solaris version of TBB be available in the near future?
Posted by Peter Strazdins on September 21, 2008 at 07:11 PM PDT #