The CppCon 2014 conference program has been posted for the upcoming September conference. We've received requests that the program continue to be posted in "bite-sized" posts, a few sessions at a time, to make the 100+ sessions easier to absorb, so here is another set of talks. This series of posts will conclude once the entire conference program has been posted in this way.
Finally, rounding out the conference program, we have five final talks to announce in this blog stream... the last, pending any late-breaking additions. The first two sessions are about C++ standardization, covering what the committee is doing now that C++14 has been approved, and what's coming next including well in advance of C++17. The final three are about using C++ in specific domains, ones that are not only interesting to hear about (from Cinder creative graphics in C++, to the very small with MIT/Harvard gene sequencing, to the very large of simulating the universe, no less) but also instructive for C++ developers in general as the sessions cover modern C++11/14 techniques and solutions that are broadly applicable across many other domains as well.
In this post:
- The Committee Experience
- What the committee did next!
- Creative Coding with C++
- Gamgee: A C++14 library for genomics data processing and analysis
- Simulating the Universe using modern C++
What happens behind the closed doors of the ISO Standard Committee? And just how closed are they? The session collects some anecdotes and relates what it is like to get involved in the process of standardizing C++, from the perspective of someone attending their first meeting - me 10 years ago! - to now. We will hear some of the highs and lows along the way to C++11, some misconceptions of what might be involved, and get some idea of what happens during a typical standard meeting, and between. By the end you will have some idea of how the standard itself is actually formed, and hopefully spark the interest of folks who might be interested in getting involved themselves...
After inking 8 years to produce the C++11 standard (arguably 13) there was a feeling we should be able to produce new work faster, more incrementally. With the renewed interest in C++, we have more participation on the committee, and have looked to harness that enthusiasm in new ways. In the last 3 years we have spun up at least a dozen new study groups, and have 8 or mode Technical Specifications in various stages of development that we hope to ship over the next 12-24 months. So what are all these new groups and specifications about? Come to this session and get a vision of where C++ is headed in the immediate and short-term future.
Speaker: Alisdair Meredith, Bloomberg and Library Working Group chair. Alisdair Meredith is a software developer at BloombergLP in New York, and the C++ Standard Committee Library Working Group chair. He has been an active member of the C++ committee for just over a decade, and by a lucky co-incidence his first meeting was the kick-off meeting for the project that would become C++11, and also fixed the contents of the original library TR. He is currently working on the BDE project, BloombergLP's open source libraries that offer a foundation for C++ development, including a standard library implementation supporting the polymorphic allocator model proposed for standardization.
Realtime graphics, computer vision, hardware hacking, and audio synthesis are just a few of the crafts that fall under the banner term of "creative coding". In this session we'll talk about some of the creative projects putting C++ in places you might not expect it - everywhere from the Smithsonian's permanent design collection to robotic Coca-Cola dispensers on California beaches. We'll look at a wide spectrum of projects ranging from those of the "maker" community to commercial work from full-time professionals earning their livings in advertising and design agencies. And finally we'll take a look at how you can use the C++ you already know to jumpstart your own creative coding projects using the open source toolkit Cinder.
Speaker: Andrew Bell, Technology Research Fellow, The Barbarian Group. Andrew Bell is a Technology Research Fellow working at the creative agency The Barbarian Group. He maintains Cinder, a C++ open source creative coding framework, as his full-time job. When he's not coding on Cinder he can be found doing everything from writing emails about Cinder to being asleep, and yet somehow he remains single. In his career he has also coded too much in other capacities, specifically for the visual effects companies The Mill and Method.
Our group has defined the standards for DNA and RNA sequencing data processing and analysis for disease research and clinical applications. In the last 5 years we have published our tools in the GATK (genome analysis toolkit) which is completely written in java. With the scaling of next generation sequencing and the immense amount of that needs to be processed we hit a performance wall and found ourselves limited by the language to make optimizations and rewrite the algorithms in a way that would conform better to modern hardware.
Enter Gamgee. A free and open source C++14 library that offers much of the functionality of the GATK framework with the performance necessary to scale to the hundreds of petabytes of todays complex diseases projects. We will show how the tools developed using the Gamgee library replaced legacy java GATK tools in the production pipeline of the Broad Institute. We will also talk about how the algorithms have changed to take advantage of the native libraries and modern hardware features such as SSE/AVX and GPUs.
Speaker: Mauricio Carneiro, Group Lead, Computational Technology Development, Broad Institute of MIT and Harvard. Dr. Carneiro leads the computational technology development team at the Broad Institute of MIT and Harvard. He has contributed to major advances in DNA sequencing analysis with compression algorithms, statistical methods, heterogeneous compute optimizations and a systematic approach to the institute's computational development, distribution and support. His team is also responsible for the evaluation of new sequencing technologies and has provided several methods and tools to handle new data types in the world of next generation sequencing through the Genome Analysis Toolkit (GATK). Dr. Carneiro joined the Broad Institute in December 2010 after completing a Ph.D. in computational biology from Harvard University. He holds two championships in the International Collegiate Programming Contest organized by the Association for Computing Machinery (ACM) in 2002 and 2003, respectively, and a Programming Excellence Award from the ACM Upsilon Pi Epsilon Society in 2003. In his previous life, he was a video game developer and has led the development of the world's first massive online location based multiplayer game: Alien Revolt.Website: http://www.broadinstitute.org/~carneiro/Twitter handle: @mauricinho
What is the link between C++11/14, parallelism and the open question of the origin of the accelerated expansion of the Universe ? Answer: numerical cosmology and all the techniques to make the best out of supercomputers to shed a new light on unsolved problem in physics. In this talk, I will present the numerical lessons coming from the Full Universe Run, a numerical experiment realized in 2012 on the entire Curie thin-nodes Supercomputer to simulate the evolution of cosmological structures during the last 13.7 billion years. I will focus on how this experiment has changed our view on software design in astrophysics and how we started to implement new approaches using C++11, template metaprogramming, constant expressions and std::thread in order to maximize both genericity and performance. I will also discuss optimization issues related to data locality, cache efficiency and spatial trees which are extensively used in our domain. I will also try to give some inputs on the cultural challenges raised by the introduction of C++11/14 in our domain. This talk will be concluded by thoughts on the needs of computational physicists and how C++17 may help us to solve some of the open problems we are currently facing.
Speaker: Vincent Reverdy, Ph.D. student, Observatory of Paris. Vincent Reverdy is a Ph.D. student in numerical cosmology at the Observatory of Paris. He studies the propagation of light according to general relativity in order to probe the unexplained accelerated expansion of the Universe. In this context, he is using supercomputing facilities on a daily basis and he develops scientific codes for these facilities, mainly in C++. He is working now on approaches based on template metaprogramming to make the best out of supercomputers and to facilitate the implementation of non-standard cosmological models. Since the Bristol committee meeting, he also follows and contributes to the online discussions on the evolution of C++.