HPX version 0.9.99 released -- STE||AR Group

The STE||AR Group has released V0.9.99 of HPX -- A general purpose parallel C++ runtime system for applications of any scale.

HPX V0.9.99 Released

The newest version of HPX (V0.9.99) is now available for download! Please see here for the release notes.

HPX exposes an API fully conforming to the concurrency related parts of the C++11/C++14/C++17 standards, extended and applied to distributed and heterogeneous computing, and aligned with the ongoing standardization discussions.

From the announcement:

  • Version 1.0 approaches! This release is significant as HPX is nearly feature complete. Over the next several months we will continue to test and polish HPX’s API and documentation. The feedback and experience gained from the community’s utilization of this release will provide guidance on where to add the finishing touches for V1.0.
  • We have put a lot of effort into improving the overall performance and stability of the library. Applications written using HPX have shown to outperform equivalent applications which are based on more conventional parallelization methods.
  • In this release we finished the implementation of transparent migration of components to another locality (e.g. physical compute-node). It is now possible to trigger a migration operation without ‘stopping the world’ for the object to migrate. HPX will make sure that no work is being executed on the object while it is moved and that all subsequently scheduled work for the migrated object will be transparently forwarded to the new locality. The global address of the migrated object does not change, thus the application will not have to be changed in any way to support this new functionality.

 

2016-07 Post-Oulu mailing available

The 2016-07 mailing of new standards papers is now available.

NOTE: A number of these papers have already been publicized on this blog. This is the complete list including ones not previously publicized.

 

2016-07 post-Oulu
WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup Disposition
N4595 WG21 2016-06-10 Telecon Minutes Jonathan Wakely 2016-06-15 2016-07      
N4596 PL22.16 Jacksonville Minutes (revised) Jonathan Wakely 2016-04-01 2016-07      
N4597 WG21 2016-06 Oulu Minutes Jonathan Wakely 2016-07-11 2016-07      
N4598 PL22.16 2016-06 Oulu Minutes Jonathan Wakely 2016-07-10 2016-07      
N4599 2016-08 LWG Meeting Robert Douglas 2016-07-02 2016-07      
N4600 Working Draft, C++ Extensions for Library Fundamentals, Version 2 Geoffrey Romer 2016-07-01 2016-07      
N4601 Editor's Report for the Library Fundamentals TS Geoffrey Romer 2016-07-01 2016-07      
N4602 WG21 telecon minutes - pre-Oulu (revised) Jonathan Wakely 2016-07-10 2016-07      
N4603 Editor's Report -- Committee Draft, Standard for Programming Language C++ Richard Smith 2016-07-12 2016-07      
N4604 C++17 CD Ballot Document Richard Smith 2016-07-12 2016-07      
N4605       missing      
N4606 Working Draft, Standard for Programming Language C++ Richard Smith 2016-07-12 2016-07      
P0003R3 Removing Deprecated Exception Specifications from C++17 Alisdair Meredith 2016-06-23 2016-07 P0003R2 Core  
P0003R4 Removing Deprecated Exception Specifications from C++17 Alisdair Meredith 2016-06-25 2016-07 P0003R3 Core  
P0028R4 Using attribute namespaces without repetition J. Daniel Garcia, Daveed Vandevoorde 2016-06-22 2016-07 P0028R3 Core Adopted 2016-06
P0032R3 Homogeneous interface for variant, any and optional (Revision 3) Vicente J. Botet Escriba 2016-05-24 2016-07 P0032R2 Library Evolution Adopted 2016-06
P0035R4 Dynamic memory allocation for over-aligned data Clark Nelson 2016-06-21 2016-07 P0035R3 Core, Library Evolution Adopted 2016-06
P0040R3 Extending memory management tools Brent Friedman 2016-06-24 2016-07 P0040R2 Library Evolution, SG14 Adopted 2016-06
P0053R1 C++ Synchronized Buffered Ostream Lawrence Crowl, Peter Sommerlad, Nicolia Josuttis 2015-10-24 2016-07 P0053R0 Library evolution, Concurrency, Library  
P0053R2 C++ Synchronized Buffered Ostream Lawrence Crowl, Peter Sommerlad, Nicolia Josuttis 2016-07-05 2016-07 P0053R1 Library evolution, Concurrency, Library  
P0057R5 Wording for Coroutines Gor Nishanov 2016-07-10 2016-07 P0057R4 Core, Library  
P0063R3 C++17 should refer to C11 instead of C99 Clark Nelson, Hans Boehm 2016-06-23 2016-07 P0063R2 Library Evolution Adopted 2016-06
P0067R3 Elementary string conversions, revision 2 Jens Maurer 2016-06-23 2016-07 P0067R2 Library Adopted 2016-06
P0067R4 Elementary string conversions, revision 4 Jens Maurer 2016-07-11 2016-07 P0067R3 Library  
P0076R3 Vector and Wavefront Policies Arch Robison, Pablo Halpern, Robert Geva, Clark Nelson, Jens Maurer 2016-07-07 2016-07 P0076R2 Library Evolution  
P0083R3 Splicing Maps and Sets (Revision 5) Alan Talbot, Jonathan Wakely, Howard Hinnant, James Dennett 2016-06-24 2016-07 P0083R2 Library Evolution Adopted 2016-06
P0084R2 Emplace Return Type (Revision 1) Alan Talbot 2016-06-23 2016-07 P0084R1 Library Evolution, Library Adopted 2016-06
P0088R3 Variant: a type-safe union for C++17 (v8) Axel Naumann 2016-06-23 2016-07 P0088R2 Library Adopted 2016-06
P0091R3 Template argument deduction for class templates (Rev. 6) Mike Spertus, Faisal Vali, Richard Smith 2016-06-24 2016-07 P0091R2 Core Adopted 2016-06
P0122R3 span: bounds-safe views for sequences of objects Neil MacIntosh 2016-07-10 2016-07 P0122R2 Library Evolution  
P0124R2 Linux-Kernel Memory Model Paul E. McKenney, Ulrich Weigand, Andrea Parri, Boqun Feng 2016-06-26 2016-07 P0124R1 Concurrency  
P0127R2 Declaring non-type template arguments with auto James Touton, Mike Spertus 2016-06-23 2016-07 P0127R1 Evolution Adopted 2016-06
P0135R1 Wording for guaranteed copy elision through simplified value categories Richard Smith 2016-06-20 2016-07 P0135R0   Adopted 2016-06
P0137R1 Core Issue 1776: Replacement of class objects containing reference members Richard Smith 2016-06-23 2016-07 P0137R0 Core Adopted 2016-06
P0145R3 Refining Expression Evaluation Order for Idiomatic C++ Gabriel Dos Reis, Herb Sutter, Jonathan Caves 2016-06-23 2016-07 P0145R2 Core Adopted 2016-06
P0174R2 Deprecating Vestigial Library Parts in C++17 Alisdair Meredith 2016-06-23 2016-07 P0174R1 Library Evolution Adopted 2016-06
P0175R1 Synopses for the C library Thomas Koeppe, Richard Smith 2016-06-24 2016-07 P0175R0 Library Adopted 2016-06
P0180R2 Reserve a New Library Namespace Future Standardization Alisdair Meredith 2016-06-23 2016-07 P0180R1 Library Evolution Adopted 2016-06
P0181R1 Ordered By Default Alisdair Meredith 2016-06-23 2016-07 P0181R0 Library Evolution Adopted 2016-06
P0192R1 Adding a Fundamental Type for Short Float Boris Fomitchev, Sergei Nikolaev, Olivier Giroux, Lawrence Crowl 2016-02-14 2016-07 P0192R0 Evolution  
P0209R2 make_from_tuple: apply for construction Pablo Halpern 2016-06-23 2016-07 P0209R1 Library Adopted 2016-06
P0217R3 Proposed wording for structured bindings Jens Maurer 2016-06-24 2016-07 P0217R2 Evolution, Library Evolution Adopted 2016-06
P0219R1 Relative Paths for Filesystem Beman Dawes 2016-06-24 2016-07 P0219R0 Library, File System Adopted 2016-06
P0221R2 Proposed wording for default comparisons, revision 4 Jens Maurer 2016-06-23 2016-07 P0221R1 Evolution, Core  
P0237R2 Wording for fundamental bit manipulation utilities Vincent Reverdy, Robert J. Brunner, Nathan Myers 2016-07-11 2016-07 P0237R1 Library Evolution, SG14, Numerics  
P0250R2 Wording improvements for initialization and thread ids (CWG 2046, 1784) Hans Boehm 2016-07-10 2016-07 P0250R1 Concurrency, Core  
P0254R2 Integrating std::string_view and std::string Marshall Clow 2016-06-24 2016-07 P0254R1 Library Evolution Adopted 2016-06
P0258R2 has_unique_object_representations - wording Michael Spencer 2016-06-24 2016-07 P0258R1 Library Adopted 2016-06
P0266R1 Removing Restrictions on requires-Expressions Walter E. Brown 2016-07-10 2016-07 P0266R0 Core  
P0267R2 A Proposal to Add 2D Graphics Rendering and Display to C++, Michael McLaughlin, Herb Sutter, Jason Zink 2016-06-22 2016-07 P0267R1 Library Evolution  
P0270R1 Removing C dependencies from signal handler wording Hans Boehm 2016-07-10 2016-07 P0270R0 Library  
P0283R2 Standard and non-standard attributes J. Daniel Garcia 2016-06-22 2016-07 P0283R1 Core Adopted 2016-06
P0292R2 constexpr if: A slightly different syntax Jens Maurer 2016-06-20 2016-07 P0292R1 Core Adopted 2016-06
P0296R2 Forward progress guarantees: Base definitions Torvald Riegel 2016-06-21 2016-07 P0296R1 Core Adopted 2016-06
P0298R1 A byte type definition Neil MacIntosh 2016-07-10 2016-07 P0298R0 Library Evolution  
P0299R1 Forward progress guarantees for the Parallelism TS features Torvald Riegel 2016-06-24 2016-07 P0299R0 Library Adopted 2016-06
P0302R1 Removing Allocator Support in std::function (rev 1) Jonathan Wakely 2016-06-23 2016-07 P0302R0 Library Adopted 2016-06
P0304R1 C++ Standard Library Issues Resolved Directly In Oulu Marshall Clow 2016-06-24 2016-07 P0304R0 Library Adopted 2016-06
P0305R1 Selection statements with initializer Thomas Koeppe 2016-06-24 2016-07 P0305R0 Evolution, Core Adopted 2016-06
P0307R2 Making Optional Greater Equal Again Tony Van Eerd 2016-03-15 2016-07 P0307R1 Library Evolution, Library Adopted 2016-06
P0314R0 Querying the alignment of an object Robert Haberlach 2016-03-28 2016-07   Evolution  
P0325R1 Propose to adopt make_array into the IS Zhihao Yuan 2016-06-29 2016-07 P0325R0 Library  
P0336R1 Better Names for Parallel Execution Policies in C++17 Pablo Halpern 2016-06-23 2016-07 P0336R0 Concurrency, Library Evolution Adopted 2016-06
P0346R1 A <random> Nomenclature Tweak Walter E. Brown 2016-06-21 2016-07 P0346R0 Library Adopted 2016-06
P0358R1 Fixes for not_fn Tomasz Kamiński 2016-06-22 2016-07 P0358R0 Library Evolution Adopted 2016-06
P0370R1 Ranges TS Design Updates Omnibus Casey Carter, Eric Niebler 2016-07-05 2016-07 P0370R0 Library Evolution  
P0371R1 Temporarily discourage memory_order_consume Hans Boehm 2016-06-23 2016-07 P0371R0 Library, Core Adopted 2016-06
P0380R1 A Contract Design G. Dos Reis, J. D. Garcia, J. Lakos, A. Meredith, N. Myers, B. Stroustrup 2016-07-11 2016-07 P0380R0 Evolution  
P0386R2 Inline Variables Hal Finkel, Richard Smith 2016-06-24 2016-07 P0386R1   Adopted 2016-06
P0387R0 Memory Model Issues for Concurrent Data Structures Hans Boehm 2016-07-11 2016-07   Concurrency  
P0388R0 Permit conversions to arrays of unknown bound Robert Haberlach 2016-06-28 2016-07   Evolution  
P0389R0 template keyword in unqualified-ids Robert Haberlach 2016-06-28 2016-07   Evolution  
P0390R0 A Proposal to Add Pointer Cast Functions with Move Semantics to the Standard Library Nickolas Pokhylets 2016-06-04 2016-07   Library Evolution, Library  
P0391R0 Introducing the term "templated entity" Jens Maurer 2016-06-21 2016-07   Core Adopted 2016-06
P0392R0 Adapting string_view by filesystem paths Nicolai Josuttis 2016-06-23 2016-07   Library Adopted 2016-06
P0393R3 Making Variant Greater Equal Tony Van Eerd 2016-06-21 2016-07 P0393R2 Library Adopted 2016-06
P0394R4 Hotel Parallelifornia: terminate() for Parallel Algorithms Exception Handling JF Bastien, Bryce Adelstein Lelbach 2016-06-23 2016-07 P0394R3 Concurrency Adopted 2016-06
P0396R0 C++ Concepts Active Issues List (Snapshot of Revision 4) Andrew Sutton 2016-06-24 2016-07   Core Adopted 2016-06
P0397R0 C++ Standard Library Priority 1 Issues Resolved Directly In Oulu Alisdair Meredith 2016-06-24 2016-07   Library Adopted 2016-06
P0398R0 Core issue 1518: Explicit default constructors and copy-list-initialization Jens Maurer 2016-06-24 2016-07   Core Adopted 2016-06
P0400R0 Wording for Order of Evaluation of Function Arguments William M. Miller 2016-06-25 2016-07   WG21  
P0401R0 Extensions to the Allocator interface Jonathan Wakely 2016-07-08 2016-07   Library Evolution  
P0404R0 Matching Types: 404 Syntax Not found Hubert Tong, James Touton 2016-07-11 2016-07   Evolution  
P0405R0 Wording for Networking TS changes from Kona Jonathan Wakely 2016-06-28 2016-07   Library  
P0407R0 Allocator-aware basic stringbuf Peter Sommerlad 2016-07-05 2016-07   Library Evolution, Library  
P0408R0 Efficient Access to basic stringbuf's Buffer Peter Sommerlad 2016-07-01 2016-07   Library Evolution, Library  
P0409R0 Allow lambda capture [=, this] Thomas Koeppe 2016-06-27 2016-07   Evolution  
P0411R0 Separating Library Requirements and Preconditions Jonathan Wakely 2016-07-07 2016-07   Library Evolution, Library  
P0413R0 Updating Parallel Execution Policy Names in the Parallelism TS Pablo Halpern 2016-07-07 2016-07   Concurrency, Library Evolution  
P0414R0 Merging shared_ptr changes from Library Fundamentals to C++17 Jonathan Wakely 2016-07-07 2016-07   Library  
P0416R0 Operator Dot (R3) Bjarne Stroustrup, Gabriel Dos Reis 2016-07-10 2016-07 N4477 Evolution, Core  
P0417R0 C++17 should refer to ISO/IEC 10646 2014 instead of 1994 Beman Dawes 2016-07-13 2016-07   Core, Library  

 

CppCon 2016 Program Preview: Concurrency, Modules and Finance

We have more CppCon 2016 program previews today! A selection of talks on concurrency, modules and finance, including talks by Hans Boehm, Anthony Williams and Richard Smith.

Program Preview: Concurrency, Modules, Finance

From the article:

Speaking for the first time in the US, Anthony Williams, the maintainer of Boost.Thread and the author of C++ Concurrency in Action will be joining us this year at CppCon! His talk, The Continuing Future of Concurrency in C++, will provide overview of the additions to the standard C++ concurrency libraries in the Technical Specifications for Concurrency and Parallelism and the C++14 and C++17 standards. ... [and much more]

CppCast Episode 63: IncludeOS with Alfred Bratterud

Episode 63 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Alfred Bratterud, CEO of IncludeOS to discuss Microservice applications with the IncludeOS platform.

CppCast Episode 63: IncludeOS with Alfred Bratterud

by Rob Irving and Jason Turner

About the interviewee:

Alfred has been doing research towards IncludeOS since 2013, and got a PhD scholarship based on the early work in 2014. The IEEE CloudCom paper introducing the IncludeOS prototype was published in 2015 and he spun out a startup around IncludeOS in 2016, in collaboration with Oslo and Akershus university college (the largest institution for engineering education in Norway). He's currently focusing 100% on developing IncludeOS from research experiment to a production ready platform for cloud services.

Alfred holds BSc and MSc in computer science, with focus on logic and computability, from the university of Oslo. He has 10+ years of industrial programming experience, mostly in web services. He's been working at Oslo university college since 2011, teaching various subjects ranging from operating systems, sysadmin and firewalls to web development. He started learning C++ when he took over a C++ course at the college in 2011. A very good year to start C++.

CppCon 2015 Organizational Leadership with Modern C++--Kevin Kostrzewa & Johm Wyman

Have you registered for CppCon 2016 in September? Don’t delay – Registration is open now.

While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2015 for you to enjoy. Here is today’s feature:

Organizational Leadership with Modern C++

by Kevin Kostrzewa & Johm Wyman

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

With the "C++ Renaissance" it is imperative that the technical leadership prove their mettle to lead a large organization into adopting modern practices and idioms.

In this talk, John and Kevin will discuss various techniques that they have employed to help drive their large development organization (~ 75 software engineers) towards a culture of modernization - some techniques that have worked well, and some that have not.

This will not be a discussion on specifics and nuances of the language. This is more a "fuzzy" discussion on what it means to be both at the forefront of the language and a leader / champion for your peers.

CppCon 2015 completion T : Improving the future T with monads--Travis Gockel

Have you registered for CppCon 2016 in September? Don’t delay – Registration is open now.

While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2015 for you to enjoy. Here is today’s feature:

completion T : Improving the future T with monads

by Travis Gockel

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

std::future provides us a mechanism for asynchronous communication between a provider and receiver. However, the C++14 standard does not allow for actual asynchronous programming, as the only ways to interact with an std::future are blocking calls. The proposed then helps, but the interface is awkward and can be extremely slow when handling exceptions. Here, I will talk about completion a high-performance, async-only and monadic alternative to std::future and how it is used at SolidFire.

CppCon 2016: Dan Saks Keynote and Some Program Previews (Embedded, Coroutines and Accelerators)

<img alt="" data-cke-saved-src="http://cppcon.org/wp-content/uploads/2015/11/DanSaksbw-225x300.jpeg" src="http://cppcon.org/wp-content/uploads/2015/11/DanSaksbw-225x300.jpeg" 225px;="" height:="" 300px;="" float:="" left;"="" style="float: right;">

I'm very pleased to announce that Dan Saks will be one of the keynotes at CppCon 2016! Dan is one of the world's leading experts on the C and C++ programming languages and their use in developing embedded systems.

He is the president of Saks & Associates, which offers training and consulting in C, C++ and embedded programming. Dan has previously served as secretary of the ANSI and ISO C++ Standards committees and as a member of the ANSI C Standards committee.

Dan used to write the “Programming Pointers” column for embedded.com. He has also written for numerous publications including The C/C++ Users Journal, The C++ Report, The Journal of C Language Translation, Software Development, Embedded Systems Design and Dr. Dobb's Journal. With Thomas Plum, he wrote C++ Programming Guidelines, which won a 1992 Computer Language Magazine Productivity Award. He has presented at conferences such as Software Development and Embedded Systems. More recently, he contributed to the CERT Secure C Coding Standard and the CERT Secure C++ Coding Standard.

Dan's keynote, extern “C”: Talking to C Programmers About C++, will be about migrating C code (and C programmers) to modern C++:

Most of us have heard this story. We’ve even told it ourselves… C++ is nearly all of C, plus a whole lot more. Migrating code from C to C++ is pretty easy. Moreover, the migration itself can yield immediate benefits by exposing questionable type conversions that can be sources of latent bugs. After migration, the code performs as well in C++ as in the original C. And now that it’s C++, you have ready access to a wealth of advanced features you can (but don’t have to) use to implement enhancements. Who wouldn’t want that? Legions of C programmers, apparently. Despite the success of C++ in numerous application domains, C remains considerably more popular, especially in embedded, automotive, and aerospace applications. In many cases, projects resist C++ because their managers think the risks outweigh the benefits. In other cases, the resistance comes from programmers who persist in believing bad things about C++, even when those things aren’t true. What can the C++ community do to overcome this resistance? Drawing on lessons from cognitive science, linguistics and psychology, and (of course) computer science, this talk offers suggestions about how to make the case for C++ more persuasive to C programmers.

We've also got some CppCon program previews from three tracks today. The full program will be announced this Sunday. Here's some of our content on embedded programming:

We've also got a lot of great talks about the upcoming Coroutines TS:

And finally, some talks about accelerator and GPU programming:

Come join us at CppCon in Bellevue this September - registration is still open!

 

-- Bryce Adelstein Lelbach, CppCon Program Committee