HPX V0.9.11 (Nov 11, 2015)
Contents
HPX V0.9.11 (Nov 11, 2015)#
Our main focus for this release was the design and development of a coherent set
of higher-level APIs exposing various types of parallelism to the application
programmer. We introduced the concepts of an executor
, which can be used to
customize the where
and when
of execution of tasks in the context of
parallelizing codes. We extended all APIs related to managing parallel tasks to
support executors which gives the user the choce of either using one of the
predefined executor types or to provide its own, possibly application specific,
executor. We paid very close attention to align all of these changes with the
existing C++ Standards documents or with the ongoing proposals for
standardization.
This release is the first after our change to a new development policy. We
switched all development to be strictly performed on branches only, all direct
commits to our main branch (master
) are prohibited. Any change has to go
through a peer review before it will be merged to master
. As a result the
overall stability of our code base has significantly increased, the development
process itself has been simplified. This change manifests itself in a large
number of pull-requests which have been merged (please see below for a full list
of closed issues and pull-requests). All in all for this release, we closed
almost 100 issues and merged over 290 pull-requests. There have been over 1600
commits to the master branch since the last release.
General changes#
We are moving into the direction of unifying managed and simple components. As such, the classes
hpx::components::component
andhpx::components::component_base
have been added which currently just forward to the currently existing simple component facilities. The examples have been converted to only use those two classes.Added integration with the CircleCI hosted continuous integration service. This gives us constant and immediate feedback on the health of our master branch.
The compiler configuration subsystem in the build system has been reimplemented. Instead of using Boost.Config we now use our own lightweight set of cmake scripts to determine the available language and library features supported by the used compiler.
The API for creating instances of components has been consolidated. All component instances should be created using the
hpx::new_
only. It allows one to instantiate both, single component instances and multiple component instances. The placement of the created components can be controlled by special distribution policies. Please see the corresponding documentation outlining the use ofhpx::new_
.Introduced four new distribution policies which can be used with many API functions which traditionally expected to be used with a locality id. The new distribution policies are:
hpx::components::default_distribution_policy
which tries to place multiple component instances as evenly as possible.hpx::components::colocating_distribution_policy
which will refer to the locality where a given component instance is currently placed.hpx::components::binpacking_distribution_policy
which will place multiple component instances as evenly as possible based on any performance counter.hpx::components::target_distribution_policy
which allows one to represent a given locality in the context of a distrwibution policy.
The new distribution policies can now be also used with
hpx::async
. This change also deprecateshpx::async_colocated(id, ...)
which now is replaced by a distribution policy:hpx::async(hpx::colocated(id), ...)
.The
hpx::vector
andhpx::unordered_map
data structures can now be used with the new distribution policies as well.The parallel facility
hpx::parallel::task_region
has been renamed tohpx::parallel::task_block
based on the changes in the corresponding standardization proposal N4411.Added extensions to the parallel facility
hpx::parallel::task_block
allowing to combine a task_block with an execution policy. This implies a minor breaking change as thehpx::parallel::task_block
is now a template.Added new LCOs:
hpx::lcos::latch
andhpx::lcos::local::latch
which semantically conform to the proposedstd::latch
(see N4399).Added performance counters exposing data related to data transferred by input/output (filesystem) operations (thanks to Maciej Brodowicz).
Added performance counters allowing to track the number of action invocations (local and remote invocations).
Added new command line options –hpx:print-counter-at and –hpx:reset-counters.
The
hpx::vector
component has been renamed tohpx::partitioned_vector
to make it explicit that the underlying memory is not contiguous.Introduced a completely new and uniform higher-level parallelism API which is based on executors. All existing parallelism APIs have been adapted to this. We have added a large number of different executor types, such as a numa-aware executor, a this-thread executor, etc.
Added support for the MingW toolchain on Windows (thanks to Eric Lemanissier).
HPX now includes support for APEX, (Autonomic Performance Environment for eXascale). APEX is an instrumentation and software adaptation library that provides an interface to TAU profiling / tracing as well as runtime adaptation of HPX applications through policy definitions. For more information and documentation, please see https://github.com/UO-OACISS/xpress-apex. To enable APEX at configuration time, specify
-DHPX_WITH_APEX=On
. To also include support for TAU profiling, specify-DHPX_WITH_TAU=On
and specify the-DTAU_ROOT
,-DTAU_ARCH
and-DTAU_OPTIONS
cmake parameters.We have implemented many more of the Using parallel algorithms. Please see Issue #1141 for the list of all available parallel algorithms (thanks to Daniel Bourgeois and John Biddiscombe for contributing their work).
Breaking changes#
We are moving into the direction of unifying managed and simple components. In order to stop exposing the old facilities, all examples have been converted to use the new classes. The breaking change in this release is that performance counters are now a
hpx::components::component_base
instead ofhpx::components::managed_component_base
.We removed the support for stackless threads. It turned out that there was no performance benefit when using stackless threads. As such, we decided to clean up our codebase. This feature was not documented.
The CMake project name has changed from ‘hpx’ to ‘HPX’ for consistency and compatibility with naming conventions and other CMake projects. Generated config files go into <prefix>/lib/cmake/HPX and not <prefix>/lib/cmake/hpx.
The macro
HPX_REGISTER_MINIMAL_COMPONENT_FACTORY
has been deprecated. Please useHPX_REGISTER_COMPONENT
. instead. The old macro will be removed in the next release.The obsolete distributing_factory and binpacking_factory components have been removed. The corresponding functionality is now provided by the
hpx::new_
API function in conjunction with thehpx::default_layout
andhpx::binpacking
distribution policies (hpx::components::default_distribution_policy
andhpx::components::binpacking_distribution_policy
)The API function
hpx::new_colocated
has been deprecated. Please use the consolidated APIhpx::new_
in conjunction with the newhpx::colocated
distribution policy (hpx::components::colocating_distribution_policy
) instead. The old API function will still be available for at least one release of HPX if the configuration variableHPX_WITH_COLOCATED_BACKWARDS_COMPATIBILITY
is enabled.The API function
hpx::async_colocated
has been deprecated. Please use the consolidated APIhpx::async
in conjunction with the newhpx::colocated
distribution policy (hpx::components::colocating_distribution_policy
) instead. The old API function will still be available for at least one release of HPX if the configuration variableHPX_WITH_COLOCATED_BACKWARDS_COMPATIBILITY
is enabled.The obsolete remote_object component has been removed.
Replaced the use of Boost.Serialization with our own solution. While the new version is mostly compatible with Boost.Serialization, this change requires some minor code modifications in user code. For more information, please see the corresponding announcement on the hpx-users@stellar.cct.lsu.edu mailing list.
The names used by cmake to influence various configuration options have been unified. The new naming scheme relies on all configuration constants to start with
HPX_WITH_...
, while the preprocessor constant which is used at build time starts withHPX_HAVE_...
. For instance, the former cmake command line-DHPX_MALLOC=...
now has to be specified a-DHPX_WITH_MALLOC=...
and will cause the preprocessor constantHPX_HAVE_MALLOC
to be defined. The actual name of the constant (i.e.MALLOC
) has not changed. Please see the corresponding documentation for more details (CMake options).The
get_gid()
functions exposed by the component base classeshpx::components::server::simple_component_base
,hpx::components::server::managed_component_base
, andhpx::components::server::fixed_component_base
have been replaced by two new functions:get_unmanaged_id()
andget_id()
. To enable the old function name for backwards compatibility, use the cmake configuration optionHPX_WITH_COMPONENT_GET_GID_COMPATIBILITY=On
.All functions which were named
get_gid()
but were returninghpx::id_type
have been renamed toget_id()
. To enable the old function names for backwards compatibility, use the cmake configuration optionHPX_WITH_COMPONENT_GET_GID_COMPATIBILITY=On
.
Bug fixes (closed tickets)#
Here is a list of the important tickets we closed for this release.
PR #1855 - Completely removing external/endian
PR #1854 - Don’t pollute CMAKE_CXX_FLAGS through find_package()
PR #1853 - Updating CMake configuration to get correct version of TAU library
PR #1852 - Fixing Performance Problems with MPI Parcelport
PR #1851 - Fixing hpx_add_link_flag() and hpx_remove_link_flag()
PR #1850 - Fixing 1836, adding parallel::sort
PR #1849 - Fixing configuration for use of more than 64 cores
PR #1848 - Change default APEX version for release
PR #1847 - Fix client_base::then on release
PR #1846 - Removing broken lcos::local::channel from release
PR #1845 - Adding example demonstrating a possible safe-object implementation to release
PR #1844 - Removing stubs from accumulator examples
PR #1843 - Don’t pollute CMAKE_CXX_FLAGS through find_package()
PR #1841 - Fixing client_base<>::then
PR #1840 - Adding example demonstrating a possible safe-object implementation
PR #1838 - Update version rc1
PR #1837 - Removing broken lcos::local::channel
PR #1835 - Adding explicit move constructor and assignment operator to hpx::lcos::promise
PR #1834 - Making hpx::lcos::promise move-only
PR #1833 - Adding fedora docs
Issue #1832 - hpx::lcos::promise<> must be move-only
PR #1831 - Fixing resource manager gcc5.2
PR #1830 - Fix intel13
PR #1829 - Unbreaking thread test
PR #1828 - Fixing #1620
PR #1827 - Fixing a memory management issue for the Parquet application
Issue #1826 - Memory management issue in hpx::lcos::promise
PR #1825 - Adding hpx::components::component and hpx::components::component_base
PR #1823 - Adding git commit id to circleci build
PR #1822 - applying fixes suggested by clang 3.7
PR #1821 - Hyperlink fixes
PR #1820 - added parallel multi-locality sanity test
PR #1819 - Fixing #1667
Issue #1817 - Hyperlinks generated by inspect tool are wrong
PR #1816 - Support hpxrx
PR #1814 - Fix async to dispatch to the correct locality in all cases
Issue #1813 - async(launch::…, action(), …) always invokes locally
PR #1812 - fixed syntax error in CMakeLists.txt
PR #1811 - Agas optimizations
PR #1810 - drop superfluous typedefs
PR #1809 - Allow HPX to be used as an optional package in 3rd party code
PR #1808 - Fixing #1723
PR #1807 - Making sure resolve_localities does not hang during normal operation
Issue #1806 - Spinlock no longer movable and deletes operator ‘=’, breaks MiniGhost
Issue #1804 - register_with_basename causes hangs
PR #1801 - Enhanced the inspect tool to take user directly to the problem with hyperlinks
Issue #1800 - Problems compiling application on smic
PR #1799 - Fixing cv exceptions
PR #1798 - Documentation refactoring & updating
PR #1797 - Updating the activeharmony CMake module
PR #1795 - Fixing cv
PR #1794 - Fix connect with hpx::runtime_mode_connect
PR #1793 - fix a wrong use of HPX_MAX_CPU_COUNT instead of HPX_HAVE_MAX_CPU_COUNT
PR #1792 - Allow for default constructed parcel instances to be moved
PR #1791 - Fix connect with hpx::runtime_mode_connect
Issue #1790 - assertion
action_.get()
failed: HPX(assertion_failure) when running Octotiger with pull request 1786PR #1789 - Fixing discover_counter_types API function
Issue #1788 - connect with hpx::runtime_mode_connect
Issue #1787 - discover_counter_types not working
PR #1786 - Changing addressing_service to use std::unordered_map instead of std::map
PR #1785 - Fix is_iterator for container algorithms
PR #1784 - Adding new command line options:
PR #1783 - Minor changes for APEX support
PR #1782 - Drop legacy forwarding action traits
PR #1781 - Attempt to resolve the race between cv::wait_xxx and cv::notify_all
PR #1780 - Removing serialize_sequence
PR #1779 - Fixed #1501: hwloc configuration options are wrong for MIC
PR #1778 - Removing ability to enable/disable parcel handling
PR #1777 - Completely removing stackless threads
PR #1776 - Cleaning up util/plugin
PR #1775 - Agas fixes
PR #1774 - Action invocation count
PR #1773 - replaced MSVC variable with WIN32
PR #1772 - Fixing Problems in MPI parcelport and future serialization.
PR #1771 - Fixing intel 13 compiler errors related to variadic template template parameters for
lcos::when_
testsPR #1770 - Forwarding decay to
std::
PR #1769 - Add more characters with special regex meaning to the existing patch
PR #1768 - Adding test for receive_buffer
PR #1767 - Making sure that uptime counter throws exception on any attempt to be reset
PR #1766 - Cleaning up code related to throttling scheduler
PR #1765 - Restricting thread_data to creating only with intrusive_pointers
PR #1764 - Fixing 1763
Issue #1763 - UB in thread_data::operator delete
PR #1762 - Making sure all serialization registries/factories are unique
PR #1761 - Fixed #1751: hpx::future::wait_for fails a simple test
PR #1758 - Fixing #1757
Issue #1757 - pinning not correct using –hpx:bind
Issue #1756 - compilation error with MinGW
PR #1755 - Making output serialization const-correct
Issue #1753 - HPX performance degrades with time since execution begins
Issue #1752 - Error in AGAS
Issue #1751 - hpx::future::wait_for fails a simple test
PR #1750 - Removing hpx_fwd.hpp includes
PR #1749 - Simplify result_of and friends
PR #1747 - Removed superfluous code from message_buffer.hpp
PR #1746 - Tuple dependencies
Issue #1745 - Broken when_some which takes iterators
PR #1744 - Refining archive interface
PR #1743 - Fixing when_all when only a single future is passed
PR #1742 - Config includes
PR #1741 - Os executors
Issue #1740 - hpx::promise has some problems
PR #1739 - Parallel composition with generic containers
Issue #1738 - After building program and successfully linking to a version of hpx DHPX_DIR seems to be ignored
Issue #1737 - Uptime problems
PR #1736 - added convenience c-tor and begin()/end() to serialize_buffer
PR #1735 - Config includes
PR #1734 - Fixed #1688: Add timer counters for tfunc_total and exec_total
Issue #1733 - Add unit test for hpx/lcos/local/receive_buffer.hpp
PR #1732 - Renaming get_os_thread_count
PR #1731 - Basename registration
Issue #1730 - Use after move of thread_init_data
PR #1729 - Rewriting channel based on new gate component
PR #1728 - Fixing #1722
PR #1727 - Fixing compile problems with apply_colocated
PR #1726 - Apex integration
PR #1725 - fixed test timeouts
PR #1724 - Renaming vector
Issue #1723 - Drop support for intel compilers and gcc 4.4. based standard libs
Issue #1722 - Add support for detecting non-ready futures before serialization
PR #1721 - Unifying parallel executors, initializing from launch policy
PR #1720 - dropped superfluous typedef
Issue #1718 - Windows 10 x64, VS 2015 - Unknown CMake command “add_hpx_pseudo_target”.
PR #1717 - Timed executor traits for thread-executors
PR #1716 - serialization of arrays didn’t work with non-pod types. fixed
PR #1715 - List serialization
PR #1714 - changing misspellings
PR #1713 - Fixed distribution policy executors
PR #1712 - Moving library detection to be executed after feature tests
PR #1711 - Simplify parcel
PR #1710 - Compile only tests
PR #1709 - Implemented timed executors
PR #1708 - Implement parallel::executor_traits for thread-executors
PR #1707 - Various fixes to threads::executors to make custom schedulers work
PR #1706 - Command line option –hpx:cores does not work as expected
Issue #1705 - command line option –hpx:cores does not work as expected
PR #1704 - vector deserialization is speeded up a little
PR #1703 - Fixing shared_mutes
Issue #1702 - Shared_mutex does not compile with no_mutex cond_var
PR #1701 - Add distribution_policy_executor
PR #1700 - Executor parameters
PR #1699 - Readers writer lock
PR #1698 - Remove leftovers
PR #1697 - Fixing held locks
PR #1696 - Modified Scan Partitioner for Algorithms
PR #1695 - This thread executors
PR #1694 - Fixed #1688: Add timer counters for tfunc_total and exec_total
PR #1693 - Fix #1691: is_executor template specification fails for inherited executors
PR #1692 - Fixed #1662: Possible exception source in coalescing_message_handler
Issue #1691 - is_executor template specification fails for inherited executors
PR #1690 - added macro for non-intrusive serialization of classes without a default c-tor
PR #1689 - Replace value_or_error with custom storage, unify future_data state
Issue #1688 - Add timer counters for tfunc_total and exec_total
PR #1687 - Fixed interval timer
PR #1686 - Fixing cmake warnings about not existing pseudo target dependencies
PR #1685 - Converting partitioners to use bulk async execute
PR #1683 - Adds a tool for inspect that checks for character limits
PR #1682 - Change project name to (uppercase) HPX
PR #1681 - Counter shortnames
PR #1680 - Extended Non-intrusive Serialization to Ease Usage for Library Developers
PR #1679 - Working on 1544: More executor changes
PR #1678 - Transpose fixes
PR #1677 - Improve Boost compatibility check
PR #1676 - 1d stencil fix
Issue #1675 - hpx project name is not HPX
PR #1674 - Fixing the MPI parcelport
PR #1673 - added move semantics to map/vector deserialization
PR #1672 - Vs2015 await
PR #1671 - Adapt transform for #1668
PR #1670 - Started to work on #1668
PR #1669 - Add this_thread_executors
Issue #1667 - Apple build instructions in docs are out of date
PR #1666 - Apex integration
PR #1665 - Fixes an error with the whitespace check that showed the incorrect location of the error
Issue #1664 - Inspect tool found incorrect endline whitespace
PR #1663 - Improve use of locks
Issue #1662 - Possible exception source in coalescing_message_handler
PR #1661 - Added support for 128bit number serialization
PR #1660 - Serialization 128bits
PR #1659 - Implemented inner_product and adjacent_diff algos
PR #1658 - Add serialization for std::set (as there is for std::vector and std::map)
PR #1657 - Use of shared_ptr in io_service_pool changed to unique_ptr
Issue #1656 - 1d_stencil codes all have wrong factor
PR #1654 - When using runtime_mode_connect, find the correct localhost public ip address
PR #1653 - Fixing 1617
PR #1652 - Remove traits::action_may_require_id_splitting
PR #1651 - Fixed performance counters related to AGAS cache timings
PR #1650 - Remove leftovers of traits::type_size
PR #1649 - Shorten target names on Windows to shorten used path names
PR #1648 - Fixing problems introduced by merging #1623 for older compilers
PR #1647 - Simplify running automatic builds on Windows
Issue #1646 - Cache insert and update performance counters are broken
Issue #1644 - Remove leftovers of traits::type_size
Issue #1643 - Remove traits::action_may_require_id_splitting
PR #1642 - Adds spell checker to the inspect tool for qbk and doxygen comments
PR #1640 - First step towards fixing 688
PR #1639 - Re-apply remaining changes from limit_dataflow_recursion branch
PR #1638 - This fixes possible deadlock in the test ignore_while_locked_1485
PR #1637 - Fixing hpx::wait_all() invoked with two vector<future<T>>
PR #1636 - Partially re-apply changes from limit_dataflow_recursion branch
PR #1635 - Adding missing test for #1572
PR #1634 - Revert “Limit recursion-depth in dataflow to a configurable constant”
PR #1633 - Add command line option to ignore batch environment
PR #1631 - hpx::lcos::queue exhibits strange behavior
PR #1630 - Fixed endline_whitespace_check.cpp to detect lines with only whitespace
Issue #1629 - Inspect trailing whitespace checker problem
PR #1628 - Removed meaningless const qualifiers. Minor icpc fix.
PR #1627 - Fixing the queue LCO and add example demonstrating its use
PR #1626 - Deprecating get_gid(), add get_id() and get_unmanaged_id()
PR #1625 - Allowing to specify whether to send credits along with message
Issue #1624 - Lifetime issue
Issue #1623 - hpx::wait_all() invoked with two vector<future<T>> fails
PR #1622 - Executor partitioners
PR #1621 - Clean up coroutines implementation
Issue #1620 - Revert #1535
PR #1619 - Fix result type calculation for hpx::make_continuation
PR #1618 - Fixing RDTSC on Xeon/Phi
Issue #1617 - hpx cmake not working when run as a subproject
Issue #1616 - cmake problem resulting in RDTSC not working correctly for Xeon Phi creates very strange results for duration counters
Issue #1615 - hpx::make_continuation requires input and output to be the same
PR #1614 - Fixed remove copy test
Issue #1613 - Dataflow causes stack overflow
PR #1612 - Modified foreach partitioner to use bulk execute
PR #1611 - Limit recursion-depth in dataflow to a configurable constant
PR #1610 - Increase timeout for CircleCI
PR #1609 - Refactoring thread manager, mainly extracting thread pool
PR #1608 - Fixed running multiple localities without localities parameter
PR #1607 - More algorithm fixes to adjacentfind
Issue #1606 - Running without localities parameter binds to bogus port range
Issue #1605 - Too many serializations
PR #1604 - Changes the HPX image into a hyperlink
PR #1601 - Fixing problems with remove_copy algorithm tests
PR #1600 - Actions with ids cleanup
PR #1599 - Duplicate binding of global ids should fail
PR #1598 - Fixing array access
PR #1597 - Improved the reliability of connecting/disconnecting localities
Issue #1596 - Duplicate id binding should fail
PR #1595 - Fixing more cmake config constants
PR #1594 - Fixing preprocessor constant used to enable C++11 chrono
PR #1593 - Adding operator|() for hpx::launch
Issue #1592 - Error (typo) in the docs
Issue #1590 - CMake fails when CMAKE_BINARY_DIR contains ‘+’.
Issue #1589 - Disconnecting a locality results in segfault using heartbeat example
PR #1588 - Fix doc string for config option HPX_WITH_EXAMPLES
PR #1586 - Fixing 1493
PR #1585 - Additional Check for Inspect Tool to detect Endline Whitespace
Issue #1584 - Clean up coroutines implementation
PR #1583 - Adding a check for end line whitespace
PR #1582 - Attempt to fix assert firing after scheduling loop was exited
PR #1581 - Fixed adjacentfind_binary test
PR #1580 - Prevent some of the internal cmake lists from growing indefinitely
PR #1579 - Removing type_size trait, replacing it with special archive type
Issue #1578 - Remove demangle_helper
PR #1577 - Get ptr problems
Issue #1576 - Refactor async, dataflow, and future::then
PR #1575 - Fixing tests for parallel rotate
PR #1574 - Cleaning up schedulers
PR #1573 - Fixing thread pool executor
PR #1572 - Fixing number of configured localities
PR #1571 - Reimplement decay
PR #1570 - Refactoring async, apply, and dataflow APIs
PR #1569 - Changed range for mach-o library lookup
PR #1568 - Mark decltype support as required
PR #1567 - Removed const from algorithms
Issue #1566 - CMAKE Configuration Test Failures for clang 3.5 on debian
PR #1565 - Dylib support
PR #1564 - Converted partitioners and some algorithms to use executors
PR #1563 - Fix several #includes for Boost.Preprocessor
PR #1562 - Adding configuration option disabling/enabling all message handlers
PR #1561 - Removed all occurrences of boost::move replacing it with std::move
Issue #1560 - Leftover HPX_REGISTER_ACTION_DECLARATION_2
PR #1558 - Revisit async/apply SFINAE conditions
PR #1557 - Removing type_size trait, replacing it with special archive type
PR #1556 - Executor algorithms
PR #1555 - Remove the necessity to specify archive flags on the receiving end
PR #1554 - Removing obsolete Boost.Serialization macros
PR #1553 - Properly fix HPX_DEFINE_*_ACTION macros
PR #1552 - Fixed algorithms relying on copy_if implementation
PR #1551 - Pxfs - Modifying FindOrangeFS.cmake based on OrangeFS 2.9.X
Issue #1550 - Passing plain identifier inside HPX_DEFINE_PLAIN_ACTION_1
PR #1549 - Fixing intel14/libstdc++4.4
PR #1548 - Moving raw_ptr to detail namespace
PR #1547 - Adding support for executors to future.then
PR #1546 - Executor traits result types
PR #1545 - Integrate executors with dataflow
PR #1543 - Fix potential zero-copy for primarynamespace::bulk_service_async et.al.
PR #1542 - Merging HPX0.9.10 into pxfs branch
PR #1541 - Removed stale cmake tests, unused since the great cmake refactoring
PR #1540 - Fix idle-rate on platforms without TSC
PR #1539 - Reporting situation if zero-copy-serialization was performed by a parcel generated from a plain apply/async
PR #1538 - Changed return type of bulk executors and added test
Issue #1537 - Incorrect cpuid config tests
PR #1536 - Changed return type of bulk executors and added test
PR #1535 - Make sure promise::get_gid() can be called more than once
PR #1534 - Fixed async_callback with bound callback
PR #1533 - Updated the link in the documentation to a publically- accessible URL
PR #1532 - Make sure sync primitives are not copyable nor movable
PR #1531 - Fix unwrapped issue with future ranges of void type
PR #1530 - Serialization complex
Issue #1528 - Unwrapped issue with future<void>
Issue #1527 - HPX does not build with Boost 1.58.0
PR #1526 - Added support for boost.multi_array serialization
PR #1525 - Properly handle deferred futures, fixes #1506
PR #1524 - Making sure invalid action argument types generate clear error message
Issue #1522 - Need serialization support for boost multi array
Issue #1521 - Remote async and zero-copy serialization optimizations don’t play well together
PR #1520 - Fixing UB whil registering polymorphic classes for serialization
PR #1519 - Making detail::condition_variable safe to use
PR #1518 - Fix when_some bug missing indices in its result
Issue #1517 - Typo may affect CMake build system tests
PR #1516 - Fixing Posix context
PR #1515 - Fixing Posix context
PR #1514 - Correct problems with loading dynamic components
PR #1513 - Fixing intel glibc4 4
Issue #1508 - memory and papi counters do not work
Issue #1507 - Unrecognized Command Line Option Error causing exit status 0
Issue #1506 - Properly handle deferred futures
PR #1505 - Adding #include - would not compile without this
Issue #1502 -
boost::filesystem::exists
throws unexpected exceptionIssue #1501 - hwloc configuration options are wrong for MIC
PR #1504 - Making sure boost::filesystem::exists() does not throw
PR #1500 - Exit application on
--hpx:version
/-v
and--hpx:info
PR #1498 - Extended task block
PR #1497 - Unique ptr serialization
PR #1496 - Unique ptr serialization (closed)
PR #1495 - Switching circleci build type to debug
Issue #1494 -
--hpx:version
/-v
does not exit after printing version informationIssue #1493 - add an
hpx_
prefix to libraries and components to avoid name conflictsIssue #1492 - Define and ensure limitations for arguments to async/apply
PR #1489 - Enable idle rate counter on demand
PR #1488 - Made sure
detail::condition_variable
can be safely destroyedPR #1487 - Introduced default (main) template implementation for
ignore_while_checking
PR #1486 - Add HPX inspect tool
Issue #1485 -
ignore_while_locked
doesn’t support all Lockable typesPR #1484 - Docker image generation
PR #1483 - Move external endian library into HPX
PR #1482 - Actions with integer type ids
Issue #1481 - Sync primitives safe destruction
Issue #1480 - Move external/boost/endian into hpx/util
Issue #1478 - Boost inspect violations
PR #1479 - Adds serialization for arrays; some further/minor fixes
PR #1477 - Fixing problems with the Intel compiler using a GCC 4.4 std library
PR #1476 - Adding
hpx::lcos::latch
andhpx::lcos::local::latch
Issue #1475 - Boost inspect violations
PR #1473 - Fixing action move tests
Issue #1471 - Sync primitives should not be movable
PR #1470 - Removing
hpx::util::polymorphic_factory
PR #1468 - Fixed container creation
Issue #1467 - HPX application fail during finalization
Issue #1466 - HPX doesn’t pick up Torque’s nodefile on SuperMIC
Issue #1464 - HPX option for pre and post bootstrap performance counters
PR #1463 - Replacing
async_colocated(id, ...)
withasync(colocated(id), ...)
PR #1462 - Consolidated task_region with N4411
PR #1461 - Consolidate inconsistent CMake option names
Issue #1460 - Which malloc is actually used? or at least which one is HPX built with
Issue #1459 - Make cmake configure step fail explicitly if compiler version is not supported
Issue #1458 - Update
parallel::task_region
with N4411PR #1456 - Consolidating
new_<>()
Issue #1455 - Replace
async_colocated(id, ...)
withasync(colocated(id), ...)
PR #1454 - Removed harmful std::moves from return statements
PR #1453 - Use range-based for-loop instead of Boost.Foreach
PR #1452 - C++ feature tests
PR #1451 - When serializing, pass archive flags to traits::get_type_size
Issue #1450 - traits:get_type_size needs archive flags to enable zero_copy optimizations
Issue #1449 - “couldn’t create performance counter” - AGAS
Issue #1448 - Replace distributing factories with
new_<T[]>(...)
PR #1447 - Removing obsolete remote_object component
PR #1446 - Hpx serialization
PR #1445 - Replacing travis with circleci
PR #1443 - Always stripping HPX command line arguments before executing start function
PR #1442 - Adding –hpx:bind=none to disable thread affinities
Issue #1439 - Libraries get linked in multiple times, RPATH is not properly set
PR #1438 - Removed superfluous typedefs
Issue #1437 -
hpx::init()
should strip HPX-related flags from argvIssue #1436 - Add strong scaling option to htts
PR #1435 - Adding
async_cb
,async_continue_cb
, andasync_colocated_cb
PR #1434 - Added missing install rule, removed some dead CMake code
PR #1433 - Add GitExternal and SubProject cmake scripts from eyescale/cmake repo
Issue #1432 - Add command line flag to disable thread pinning
PR #1431 - Fix #1423
Issue #1430 - Inconsistent CMake option names
Issue #1429 - Configure setting
HPX_HAVE_PARCELPORT_MPI
is ignoredPR #1428 - Fixes #1419 (closed)
PR #1427 - Adding stencil_iterator and transform_iterator
PR #1426 - Fixes #1419
PR #1425 - During serialization memory allocation should honour allocator chunk size
Issue #1424 - chunk allocation during serialization does not use memory pool/allocator chunk size
Issue #1423 - Remove
HPX_STD_UNIQUE_PTR
Issue #1422 - hpx:threads=all allocates too many os threads
PR #1420 - added .travis.yml
Issue #1419 - Unify enums:
hpx::runtime::state
andhpx::state
PR #1416 - Adding travis builder
Issue #1414 - Correct directory for dispatch_gcc46.hpp iteration
Issue #1410 - Set operation algorithms
Issue #1389 - Parallel algorithms relying on scan partitioner break for small number of elements
Issue #1325 - Exceptions thrown during parcel handling are not handled correctly
Issue #1315 - Errors while running performance tests
Issue #1309 -
hpx::vector
partitions are not easily extendable by applicationsPR #1300 - Added serialization/de-serialization to examples.tuplespace
Issue #1251 - hpx::threads::get_thread_count doesn’t consider pending threads
Issue #1008 - Decrease in application performance overtime; occasional spikes of major slowdown
Issue #1001 - Zero copy serialization raises assert
Issue #721 - Make HPX usable for Xeon Phi
Issue #524 - Extend scheduler to support threads which can’t be stolen