Skip to content

Commit

Permalink
Add parallel rfa with benchmarks
Browse files Browse the repository at this point in the history
Signed-off-by: Shreyas Atre <[email protected]>
  • Loading branch information
SAtacker committed Dec 25, 2024
2 parents 6a99390 + 8b0ce4c commit 01d705d
Show file tree
Hide file tree
Showing 18 changed files with 428 additions and 318 deletions.
7 changes: 2 additions & 5 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,12 +105,9 @@ jobs:
command: |
git clone --depth=1 file:///hpx/source-full source
- run:
name: Downloading CTest XML to Junit XML
name: Copying CTest XML to Junit XML
command: |
curl \
https://raw.githubusercontent.com/Kitware/CDash/master/app/cdash/tests/circle/conv.xsl \
--fail \
-o /hpx/conv.xsl
cp /hpx/source/.circleci/conv.xsl /hpx/conv.xsl
- persist_to_workspace:
root: /hpx
paths:
Expand Down
121 changes: 121 additions & 0 deletions .circleci/conv.xsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
<?xml version="1.0" encoding="Windows-1252" ?>
<!-- Copyright (c) 2024 Hartmut Kaiser -->
<!-- -->
<!-- SPDX-License-Identifier: BSL-1.0 -->
<!-- Distributed under the Boost Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/Site">
<xsl:variable name="Name"><xsl:value-of select="@Name"/></xsl:variable>
<xsl:variable name="Hostname"><xsl:value-of select="@Hostname"/></xsl:variable>
<xsl:variable name="TestCount"><xsl:value-of select="count(//TestList/Test)"/></xsl:variable>
<xsl:variable name="ErrorCount"><xsl:value-of select="count(//TestList/Test[@Status='error'])"/></xsl:variable>
<xsl:variable name="FailureCount"><xsl:value-of select="count(//Testing/Test[@Status='failed'])"/></xsl:variable>
<testsuite name="{$Name}" hostname="{$Hostname}" errors="0" failures="{$FailureCount}" tests="{$TestCount}">
<xsl:variable name="BuildName"><xsl:value-of select="@BuildName"/></xsl:variable>
<xsl:variable name="BuildStamp"><xsl:value-of select="@BuildStamp"/></xsl:variable>
<xsl:variable name="Generator"><xsl:value-of select="@Generator"/></xsl:variable>
<xsl:variable name="CompilerName"><xsl:value-of select="@CompilerName"/></xsl:variable>
<xsl:variable name="OSName"><xsl:value-of select="@OSName"/></xsl:variable>
<xsl:variable name="OSRelease"><xsl:value-of select="@OSRelease"/></xsl:variable>
<xsl:variable name="OSVersion"><xsl:value-of select="@OSVersion"/></xsl:variable>
<xsl:variable name="OSPlatform"><xsl:value-of select="@OSPlatform"/></xsl:variable>
<xsl:variable name="Is64Bits"><xsl:value-of select="@Is64Bits"/></xsl:variable>
<xsl:variable name="VendorString"><xsl:value-of select="@VendorString"/></xsl:variable>
<xsl:variable name="VendorID"><xsl:value-of select="@VendorID"/></xsl:variable>
<xsl:variable name="FamilyID"><xsl:value-of select="@FamilyID"/></xsl:variable>
<xsl:variable name="ModelID"><xsl:value-of select="@ModelID"/></xsl:variable>
<xsl:variable name="ProcessorCacheSize"><xsl:value-of select="@ProcessorCacheSize"/></xsl:variable>
<xsl:variable name="NumberOfLogicalCPU"><xsl:value-of select="@NumberOfLogicalCPU"/></xsl:variable>
<xsl:variable name="NumberOfPhysicalCPU"><xsl:value-of select="@NumberOfPhysicalCPU"/></xsl:variable>
<xsl:variable name="TotalVirtualMemory"><xsl:value-of select="@TotalVirtualMemory"/></xsl:variable>
<xsl:variable name="TotalPhysicalMemory"><xsl:value-of select="@TotalPhysicalMemory"/></xsl:variable>
<xsl:variable name="LogicalProcessorsPerPhysical"><xsl:value-of select="@LogicalProcessorsPerPhysical"/></xsl:variable>
<xsl:variable name="ProcessorClockFrequency"><xsl:value-of select="@ProcessorClockFrequency"/></xsl:variable>
<properties>
<property name="BuildName" value="{$BuildName}"/>
<property name="BuildStamp" value="{$BuildStamp}"/>
<property name="Name" value="{$Name}"/>
<property name="Generator" value="{$Generator}"/>
<property name="CompilerName" value="{$CompilerName}"/>
<property name="OSName" value="{$OSName}"/>
<property name="Hostname" value="{$Hostname}"/>
<property name="OSRelease" value="{$OSRelease}"/>
<property name="OSVersion" value="{$OSVersion}"/>
<property name="OSPlatform" value="{$OSPlatform}"/>
<property name="Is64Bits" value="{$Is64Bits}"/>
<property name="VendorString" value="{$VendorString}"/>
<property name="VendorID" value="{$VendorID}"/>
<property name="FamilyID" value="{$FamilyID}"/>
<property name="ModelID" value="{$ModelID}"/>
<property name="ProcessorCacheSize" value="{$ProcessorCacheSize}"/>
<property name="NumberOfLogicalCPU" value="{$NumberOfLogicalCPU}"/>
<property name="NumberOfPhysicalCPU" value="{$NumberOfPhysicalCPU}"/>
<property name="TotalVirtualMemory" value="{$TotalVirtualMemory}"/>
<property name="TotalPhysicalMemory" value="{$TotalPhysicalMemory}"/>
<property name="LogicalProcessorsPerPhysical" value="{$LogicalProcessorsPerPhysical}"/>
<property name="ProcessorClockFrequency" value="{$ProcessorClockFrequency}"/>
</properties>
<xsl:apply-templates select="Testing/Test"/>
<system-out>
BuildName: <xsl:value-of select="$BuildName"/>
BuildStamp: <xsl:value-of select="$BuildStamp"/>
Name: <xsl:value-of select="$Name"/>
Generator: <xsl:value-of select="$Generator"/>
CompilerName: <xsl:value-of select="$CompilerName"/>
OSName: <xsl:value-of select="$OSName"/>
Hostname: <xsl:value-of select="$Hostname"/>
OSRelease: <xsl:value-of select="$OSRelease"/>
OSVersion: <xsl:value-of select="$OSVersion"/>
OSPlatform: <xsl:value-of select="$OSPlatform"/>
Is64Bits: <xsl:value-of select="$Is64Bits"/>
VendorString: <xsl:value-of select="$VendorString"/>
VendorID: <xsl:value-of select="$VendorID"/>
FamilyID: <xsl:value-of select="$FamilyID"/>
ModelID: <xsl:value-of select="$ModelID"/>
ProcessorCacheSize: <xsl:value-of select="$ProcessorCacheSize"/>
NumberOfLogicalCPU: <xsl:value-of select="$NumberOfLogicalCPU"/>
NumberOfPhysicalCPU: <xsl:value-of select="$NumberOfPhysicalCPU"/>
TotalVirtualMemory: <xsl:value-of select="$TotalVirtualMemory"/>
TotalPhysicalMemory: <xsl:value-of select="$TotalPhysicalMemory"/>
LogicalProcessorsPerPhysical: <xsl:value-of select="$LogicalProcessorsPerPhysical"/>
ProcessorClockFrequency: <xsl:value-of select="$ProcessorClockFrequency"/>
</system-out>
</testsuite>
</xsl:template>
<xsl:template match="Testing/Test">
<xsl:variable name="testcasename"><xsl:value-of select="Name"/></xsl:variable>
<xsl:variable name="testclassname"><xsl:value-of select="substring(Path,2)"/></xsl:variable>
<xsl:variable name="exectime">
<xsl:for-each select="Results/NamedMeasurement">
<xsl:if test="@name = 'Execution Time'">
<xsl:value-of select="."/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<testcase name="{$testcasename}" classname="{$testclassname}" time="{$exectime}">
<xsl:if test="@Status = 'passed'"></xsl:if>
<xsl:if test="@Status = 'failed'">
<xsl:variable name="failtype">
<xsl:for-each select="Results/NamedMeasurement">
<xsl:if test="@name = 'Exit Code'">
<xsl:value-of select="."/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="failcode">
<xsl:for-each select="Results/NamedMeasurement">
<xsl:if test="@name = 'Exit Value'">
<xsl:value-of select="."/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<failure message="{$failtype} ({$failcode})"><xsl:value-of select="Results/Measurement/Value/text()"/></failure>
</xsl:if>
<xsl:if test="@Status = 'notrun'">
<skipped><xsl:value-of select="Results/Measurement/Value/text()"/></skipped>
</xsl:if>
</testcase>
</xsl:template>
</xsl:stylesheet>
4 changes: 2 additions & 2 deletions .github/workflows/windows_release_gcc_mingw.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2023 The STE||AR-Group
# Copyright (c) 2023-2024 The STE||AR-Group
#
# SPDX-License-Identifier: BSL-1.0
# Distributed under the Boost Software License, Version 1.0. (See accompanying
Expand All @@ -22,7 +22,7 @@ jobs:
choco install ninja -y
md C:\projects
$client = new-object System.Net.WebClient
$client.DownloadFile("https://master.dl.sourceforge.net/project/boost/boost/1.78.0/boost_1_78_0.7z","C:\projects\boost_1_78_0.7z")
$client.DownloadFile("https://archives.boost.io/release/1.78.0/source/boost_1_78_0.7z","C:\projects\boost_1_78_0.7z")
7z x C:\projects\boost_1_78_0.7z -y -oC:\projects\boost
cd C:\projects\boost\boost_1_78_0
.\bootstrap.bat gcc
Expand Down
7 changes: 0 additions & 7 deletions cmake/HPX_SetupBoost.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -117,13 +117,6 @@ if(NOT TARGET hpx_dependencies_boost)
endif()

set(__boost_libraries "")
if(HPX_PARCELPORT_LIBFABRIC_WITH_LOGGING
OR HPX_PARCELPORT_LIBFABRIC_WITH_DEV_MODE
)
set(__boost_libraries ${__boost_libraries} log log_setup date_time chrono
thread
)
endif()

if(HPX_WITH_GENERIC_CONTEXT_COROUTINES)
# if context is needed, we should still link with boost thread and chrono
Expand Down
21 changes: 0 additions & 21 deletions cmake/toolchains/Cray.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -70,27 +70,6 @@ set(HPX_WITH_PARCELPORT_MPI_MULTITHREADED
CACHE BOOL ""
)

set(HPX_WITH_PARCELPORT_LIBFABRIC
ON
CACHE BOOL ""
)
set(HPX_PARCELPORT_LIBFABRIC_PROVIDER
"gni"
CACHE STRING "See libfabric docs for details, gni,verbs,psm2 etc etc"
)
set(HPX_PARCELPORT_LIBFABRIC_THROTTLE_SENDS
"256"
CACHE STRING "Max number of messages in flight at once"
)
set(HPX_PARCELPORT_LIBFABRIC_WITH_DEV_MODE
OFF
CACHE BOOL "Custom libfabric logging flag"
)
set(HPX_PARCELPORT_LIBFABRIC_WITH_LOGGING
OFF
CACHE BOOL "Libfabric parcelport logging on/off flag"
)

# We do a cross compilation here ...
set(CMAKE_CROSSCOMPILING
ON
Expand Down
21 changes: 0 additions & 21 deletions cmake/toolchains/CrayKNL.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -68,27 +68,6 @@ set(HPX_WITH_PARCELPORT_MPI_MULTITHREADED
CACHE BOOL ""
)

set(HPX_WITH_PARCELPORT_LIBFABRIC
ON
CACHE BOOL ""
)
set(HPX_PARCELPORT_LIBFABRIC_PROVIDER
"gni"
CACHE STRING "See libfabric docs for details, gni,verbs,psm2 etc etc"
)
set(HPX_PARCELPORT_LIBFABRIC_THROTTLE_SENDS
"256"
CACHE STRING "Max number of messages in flight at once"
)
set(HPX_PARCELPORT_LIBFABRIC_WITH_DEV_MODE
OFF
CACHE BOOL "Custom libfabric logging flag"
)
set(HPX_PARCELPORT_LIBFABRIC_WITH_LOGGING
OFF
CACHE BOOL "Libfabric parcelport logging on/off flag"
)

# Set the TBBMALLOC_PLATFORM correctly so that find_package(TBBMalloc) sets the
# right hints
set(TBBMALLOC_PLATFORM
Expand Down
21 changes: 0 additions & 21 deletions cmake/toolchains/CrayKNLStatic.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -52,27 +52,6 @@ set(HPX_WITH_PARCELPORT_MPI_MULTITHREADED
CACHE BOOL ""
)

set(HPX_WITH_PARCELPORT_LIBFABRIC
ON
CACHE BOOL ""
)
set(HPX_PARCELPORT_LIBFABRIC_PROVIDER
"gni"
CACHE STRING "See libfabric docs for details, gni,verbs,psm2 etc etc"
)
set(HPX_PARCELPORT_LIBFABRIC_THROTTLE_SENDS
"256"
CACHE STRING "Max number of messages in flight at once"
)
set(HPX_PARCELPORT_LIBFABRIC_WITH_DEV_MODE
OFF
CACHE BOOL "Custom libfabric logging flag"
)
set(HPX_PARCELPORT_LIBFABRIC_WITH_LOGGING
OFF
CACHE BOOL "Libfabric parcelport logging on/off flag"
)

# Set the TBBMALLOC_PLATFORM correctly so that find_package(TBBMalloc) sets the
# right hints
set(TBBMALLOC_PLATFORM
Expand Down
21 changes: 0 additions & 21 deletions cmake/toolchains/CrayStatic.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -62,24 +62,3 @@ set(HPX_WITH_PARCELPORT_MPI_MULTITHREADED
ON
CACHE BOOL ""
)

set(HPX_WITH_PARCELPORT_LIBFABRIC
ON
CACHE BOOL ""
)
set(HPX_PARCELPORT_LIBFABRIC_PROVIDER
"gni"
CACHE STRING "See libfabric docs for details, gni,verbs,psm2 etc etc"
)
set(HPX_PARCELPORT_LIBFABRIC_THROTTLE_SENDS
"256"
CACHE STRING "Max number of messages in flight at once"
)
set(HPX_PARCELPORT_LIBFABRIC_WITH_DEV_MODE
OFF
CACHE BOOL "Custom libfabric logging flag"
)
set(HPX_PARCELPORT_LIBFABRIC_WITH_LOGGING
OFF
CACHE BOOL "Libfabric parcelport logging on/off flag"
)
3 changes: 3 additions & 0 deletions libs/core/algorithms/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,9 @@ set(algorithms_headers
hpx/parallel/algorithms/detail/parallel_stable_sort.hpp
hpx/parallel/algorithms/detail/pivot.hpp
hpx/parallel/algorithms/detail/reduce.hpp
hpx/parallel/algorithms/detail/reduce_deterministic.hpp
hpx/parallel/algorithms/detail/replace.hpp
hpx/parallel/algorithms/detail/rfa.hpp
hpx/parallel/algorithms/detail/rotate.hpp
hpx/parallel/algorithms/detail/sample_sort.hpp
hpx/parallel/algorithms/detail/search.hpp
Expand Down Expand Up @@ -72,6 +74,7 @@ set(algorithms_headers
hpx/parallel/algorithms/partition.hpp
hpx/parallel/algorithms/reduce_by_key.hpp
hpx/parallel/algorithms/reduce.hpp
hpx/parallel/algorithms/reduce_deterministic.hpp
hpx/parallel/algorithms/remove_copy.hpp
hpx/parallel/algorithms/remove.hpp
hpx/parallel/algorithms/replace.hpp
Expand Down
Loading

0 comments on commit 01d705d

Please sign in to comment.