TBB-HipHop (Integration of Intel's Threading Building Blocks into Facebook's HipHop)
|Day:||Friday 28 January 2011||Time:||11:30 - 12:15||Location:||L101|
Hardware companies take the lead by shipping only Multicore processors as the standard for the industry. It is their solution to the power wall: reducing the operating voltage while making transistors smaller and faster. By using Multicore chips they will avoid that your latest laptop will burn your lap. Chip designers are concentrated now on gathering together lots of cores in a single chip: 4 cores are the norm today and chips with dozens and even hundreds of cores are already available or to be launched in the following few years.
But chipmakers forgot to check if the software that will exploit this massive processing power was available. Programmers now need to invent ways to write applications that take advantage of this increasing number of cores without spending too much time developing them or lowering its quality and performance. Not to mention how decades of legacy code will perform in the new hardware.
Is this context we established Open Parallel, a group that is working to create an ecosystem of developers, academia and industry to further multicore processing into the mainstream. The presentation will show the evolution and milestones that happened since 2005, but will focus on a current project: TBB into HipHop.
“Intel® Threading Building Blocks (TBB) is an open source library that helps to take advantage of multicore processor performance. It offers an approach to expressing parallelism in a C++ program.”
“HipHop for PHP transforms PHP source code into highly optimized C++. It was developed by Facebook and was released as open source in early 2010.”
At the beginning of 2010 we teamed up with Intel to get the word out about their TBB. Around that time, Facebook released their HipHop engine. We agreed to implement TBB into the HipHop engine as a first project to get our team working on TBB. We are now at a stage where we contributed back code to the community with some TBB features exposed and ready to implement in PHP projects via the HipHop engine.
In July 2010 we announced our HipHop branch/extension that aims to push the integration of TBB's library into HipHop beyond the already utilized data structures (such as the
concurrent_hash_map). In particular we are looking to get some parallel functionality exposed to PHP itself through this extension. We have already had some initial success with a parallel_for
implementation that can be used from PHP scripts using a familiar API (Aligned with the C++ API but slightly modified to better suit PHP style).
Our repository can be found at http://github.com/OpenParallel/hiphop-php, the extension is simply named tbb, and can be found in the usual paths in the source tree.
This experiment gave us some deeper insights into how parallel programming with TBB works and how we can start helping others use these technologies. At the time of writing the abstract, we are porting Wordpress to HipHop with the new TBB-HipHop commands. We aim to show our code and full results at LCA2011
Nicolás Erdödy is a seasoned high technology entrepreneur that established 15 start ups in different countries and industries. He spent decades designing and integrating systems and teams involving different areas of established organisations or creating them from scratch. Nicolás has full responsibility for value chain creation, from concept design to profitable operation and exit.
In early 2010, Nicolás established Open Parallel Ltd, a start up specialised in OSS, Multicore and Parallel Programming. Its first major project was sponsored by Intel and involves TBB's OSS version (Threading Building Blocks) applied to HipHop, Facebook’s open source software for big PHP websites. Other projects that Open Parallel is working on since 2010 are a firewalling software implemented in Erlang that addresses IPv6 issues and a TBB implementation into Gearman
Nicolás is Director of Erdödy Consultancy Ltd, a professional services firm that conceptualises and deliver projects within business and corporations; supports the due diligence, establishment, funding and management of new ventures; and helps with market development of innovations and new technologies internationally.
As Founder and CEO of the first multicore software company established in 2005 in New Zealand, Nicolás conceptualised, created, raised venture capital and internationally consolidated the business as multicore ISV for Sun Microsystems and negotiated the firm’s divestment in 2008. He was key for the University of Otago, New Zealand becoming the first Sun Microsystems OpenSparc Centre of Excellence outside the US.
In 2008, Erdödy Consultancy Ltd was commissioned to investigate if there was a potential around multicore systems to be the foundation of new industries in New Zealand. Nicolás delivered a report proposing a strategy and technology road map towards NZ becoming a global hub in Open Source and Parallel Computing.
Between Nov’ 2008 and Aug’ 2009 Nicolás was Program Manager of the Open Source Learning Lab for Flexible Learning Network. A project lead by The Open Polytechnic of NZ with funding from the Tertiary Education Commission, OSLL was an innovative delivery model of Open Source Software training 100% online.
Nicolás holds a Master of Entrepreneurship from the University of Otago; a Research Diploma for New Technologies in Education from INRP (Uruguay – France) and forgot long time ago the FORTRAN that studied between Mathematics and Hydraulics at the School of Engineering of Universidad de la Republica, Uruguay. He knows how to ask for a beer in five human languages.