Compare commits
18
Commits
hw1
..
RC3-vanila
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c485d0db2d | ||
|
|
df92833c1b | ||
|
|
0e44a3062c | ||
|
|
4e7237bd4d | ||
|
|
bc98ef4e9f | ||
|
|
1bd0cbb8d0 | ||
|
|
4dc47bb8f4 | ||
|
|
36de8d94fc | ||
|
|
9dd3eb737f | ||
|
|
c5ffec9cca | ||
|
|
4d1d7502aa | ||
|
|
1d6b271d2a | ||
|
|
496ee69f54 | ||
|
|
43dff95f67 | ||
|
|
428b50aab7 | ||
|
|
058df095b0 | ||
|
|
64dc18280c | ||
|
|
61b63016cc |
@@ -0,0 +1,2 @@
|
|||||||
|
# Assessments
|
||||||
|
assessments/
|
||||||
@@ -9,8 +9,16 @@ mtx/
|
|||||||
exclude
|
exclude
|
||||||
hpc_auth_sync.sh
|
hpc_auth_sync.sh
|
||||||
|
|
||||||
|
# IDEs
|
||||||
|
.idea/
|
||||||
|
.clangd
|
||||||
|
|
||||||
# eclipse
|
# eclipse
|
||||||
.project
|
.project
|
||||||
.cproject
|
.cproject
|
||||||
.settings/
|
.settings/
|
||||||
|
|
||||||
|
.vs/
|
||||||
|
.vscode/
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
# project
|
||||||
|
bin/
|
||||||
|
out/
|
||||||
|
mat/
|
||||||
|
mtx/
|
||||||
|
.unused/
|
||||||
|
various/
|
||||||
|
|
||||||
|
# hpc
|
||||||
|
|
||||||
|
# IDEs
|
||||||
|
.idea/
|
||||||
|
.clangd
|
||||||
|
|
||||||
|
# eclipse
|
||||||
|
.project
|
||||||
|
.cproject
|
||||||
|
.settings/
|
||||||
|
|
||||||
|
.vs/
|
||||||
|
.vscode/
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,251 @@
|
|||||||
|
#
|
||||||
|
# PDS HW2 Makefile
|
||||||
|
#
|
||||||
|
# Copyright (C) 2024 Christos Choutouridis <christos@choutouridis.net>
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Lesser General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
# ============== Project settings ==============
|
||||||
|
# Project's name
|
||||||
|
PROJECT := PDS_homework_2
|
||||||
|
|
||||||
|
# Excecutable's name
|
||||||
|
TARGET := bitonic
|
||||||
|
|
||||||
|
# Source directories list(space seperated). Makefile-relative path, UNDER current directory.
|
||||||
|
SRC_DIR_LIST := src test test/gtest
|
||||||
|
|
||||||
|
# Include directories list(space seperated). Makefile-relative path.
|
||||||
|
INC_DIR_LIST := include \
|
||||||
|
test \
|
||||||
|
test/gtest/ \
|
||||||
|
/usr/lib/x86_64-linux-gnu/openmpi/include/ \
|
||||||
|
src
|
||||||
|
|
||||||
|
# Exclude files list(space seperated). Filenames only.
|
||||||
|
# EXC_FILE_LIST := bad.cpp old.cpp
|
||||||
|
|
||||||
|
# Build directories
|
||||||
|
BUILD_DIR := bin
|
||||||
|
OBJ_DIR := $(BUILD_DIR)/obj
|
||||||
|
DEP_DIR := $(BUILD_DIR)/.dep
|
||||||
|
|
||||||
|
OUTPUT_DIR := out-rc3a
|
||||||
|
|
||||||
|
# ========== Compiler settings ==========
|
||||||
|
# Compiler flags for debug and release
|
||||||
|
DEB_CFLAGS := -DDEBUG -g3 -Wall -Wextra -std=c11 -fopenmp
|
||||||
|
REL_CFLAGS := -Wall -Wextra -O3 -std=c11 -fopenmp
|
||||||
|
DEB_CXXFLAGS := -DDEBUG -g3 -Wall -Wextra -std=c++17 -fopenmp
|
||||||
|
REL_CXXFLAGS := -Wall -Wextra -O3 -std=c++17 -fopenmp
|
||||||
|
|
||||||
|
# Pre-defines
|
||||||
|
# PRE_DEFS := MYCAB=1729 SUPER_MODE
|
||||||
|
PRE_DEFS := _GLIBCXX_PARALLEL
|
||||||
|
|
||||||
|
# ============== Linker settings ==============
|
||||||
|
# Linker flags (example: -pthread -lm)
|
||||||
|
LDFLAGS := -pthread -fopenmp
|
||||||
|
|
||||||
|
# Map output file
|
||||||
|
MAP_FILE := output.map
|
||||||
|
MAP_FLAG := -Xlinker -Map=$(BUILD_DIR)/$(MAP_FILE)
|
||||||
|
|
||||||
|
# ============== Docker settings ==============
|
||||||
|
# We need:
|
||||||
|
# - Bind the entire project directory(the dir that icludes all the code) as volume.
|
||||||
|
# - In docker instance, change to working directory(where the makefile is).
|
||||||
|
DOCKER_VOL_DIR := $(shell pwd)
|
||||||
|
DOCKER_WRK_DIR :=
|
||||||
|
DOCKER_RUN := docker run --rm
|
||||||
|
DOCKER_FLAGS := -v $(DOCKER_VOL_DIR):/usr/src/$(PROJECT) -w /usr/src/$(PROJECT)/$(DOCKER_WRK_DIR)
|
||||||
|
|
||||||
|
# docker invoke mechanism (edit with care)
|
||||||
|
# note:
|
||||||
|
# Here, `DOCKER` variable is empty. Rules can assign `DOCKER := DOCKER_CMD` when docker
|
||||||
|
# functionality is needed.
|
||||||
|
DOCKER_CMD = $(DOCKER_RUN) $(DOCKER_FLAGS) $(IMAGE)
|
||||||
|
DOCKER :=
|
||||||
|
|
||||||
|
# ============== Tool selection ==============
|
||||||
|
# compiler and compiler flags.
|
||||||
|
CSIZE := size
|
||||||
|
CFLAGS := $(DEB_CFLAGS)
|
||||||
|
CXXFLAGS := $(DEB_CXXFLAGS)
|
||||||
|
CXX := g++ #mpic++
|
||||||
|
CC := gcc #mpicc
|
||||||
|
|
||||||
|
#
|
||||||
|
# =========== Main body and Patterns ===========
|
||||||
|
#
|
||||||
|
|
||||||
|
#ifeq ($(OS), Windows_NT)
|
||||||
|
# TARGET := $(TARGET).exe
|
||||||
|
#endif
|
||||||
|
INC := $(foreach dir,$(INC_DIR_LIST),-I$(dir))
|
||||||
|
DEF := $(foreach def,$(PRE_DEFS),-D$(def))
|
||||||
|
EXC := $(foreach fil,$(EXC_FILE_LIST), \
|
||||||
|
$(foreach dir,$(SRC_DIR_LIST),$(wildcard $(dir)/$(fil))) \
|
||||||
|
)
|
||||||
|
# source files. object and dependencies list
|
||||||
|
# recursive search into current and source directories
|
||||||
|
SRC := $(wildcard *.cpp)
|
||||||
|
SRC += $(foreach dir,$(SRC_DIR_LIST),$(wildcard $(dir)/*.cpp))
|
||||||
|
SRC += $(foreach dir,$(SRC_DIR_LIST),$(wildcard $(dir)/**/*.cpp))
|
||||||
|
SRC := $(filter-out $(EXC),$(SRC))
|
||||||
|
#SRC := $(abspath $(SRC))
|
||||||
|
|
||||||
|
OBJ := $(foreach file,$(SRC:%.cpp=%.o),$(OBJ_DIR)/$(file))
|
||||||
|
DEP := $(foreach file,$(SRC:%.cpp=%.d),$(DEP_DIR)/$(file))
|
||||||
|
|
||||||
|
|
||||||
|
# Make Dependencies pattern.
|
||||||
|
# This little trick enables recompilation only when dependencies change
|
||||||
|
# and it does so for changes both in source AND header files ;)
|
||||||
|
#
|
||||||
|
# It is based on Tom Tromey's method.
|
||||||
|
#
|
||||||
|
# Invoke cpp to create makefile rules with dependencies for each source file
|
||||||
|
$(DEP_DIR)/%.d: %.c
|
||||||
|
@mkdir -p $(@D)
|
||||||
|
@$(DOCKER) $(CC) -E $(CFLAGS) $(INC) $(DEF) -MM -MT $(OBJ_DIR)/$(<:.c=.o) -MF $@ $<
|
||||||
|
|
||||||
|
# c file objects depent on .c AND dependency files, which have an empty recipe
|
||||||
|
$(OBJ_DIR)/%.o: %.c $(DEP_DIR)/%.d
|
||||||
|
@mkdir -p $(@D)
|
||||||
|
@$(DOCKER) $(CC) -c $(CFLAGS) $(INC) $(DEF) -o $@ $<
|
||||||
|
|
||||||
|
$(DEP_DIR)/%.d: %.cpp
|
||||||
|
@mkdir -p $(@D)
|
||||||
|
@$(DOCKER) $(CXX) -E $(CXXFLAGS) $(INC) $(DEF) -MM -MT $(OBJ_DIR)/$(<:.cpp=.o) -MF $@ $<
|
||||||
|
|
||||||
|
# cpp file objects depent on .cpp AND dependency files, which have an empty recipe
|
||||||
|
$(OBJ_DIR)/%.o: %.cpp $(DEP_DIR)/%.d
|
||||||
|
@mkdir -p $(@D)
|
||||||
|
@$(DOCKER) $(CXX) -c $(CXXFLAGS) $(INC) $(DEF) -o $@ $<
|
||||||
|
|
||||||
|
# empty recipe for dependency files. This prevents make errors
|
||||||
|
$(DEP):
|
||||||
|
|
||||||
|
# now include all dependencies
|
||||||
|
# After all they are makefile dependency rules ;)
|
||||||
|
include $(wildcard $(DEP))
|
||||||
|
|
||||||
|
# main target rule
|
||||||
|
$(BUILD_DIR)/$(TARGET): $(OBJ)
|
||||||
|
@mkdir -p $(@D)
|
||||||
|
@echo Linking to target: $(TARGET)
|
||||||
|
@echo $(DOCKER) $(CXX) '$$(OBJ)' $(LDFLAGS) $(MAP_FLAG) -o $(@D)/$(TARGET)
|
||||||
|
@$(DOCKER) $(CXX) $(OBJ) $(LDFLAGS) $(MAP_FLAG) -o $(@D)/$(TARGET)
|
||||||
|
@echo
|
||||||
|
@echo Print size information
|
||||||
|
@$(CSIZE) $(@D)/$(TARGET)
|
||||||
|
@echo Done
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# ================ Default local build rules =================
|
||||||
|
# example:
|
||||||
|
# make debug
|
||||||
|
|
||||||
|
.DEFAULT_GOAL := all
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean:
|
||||||
|
@echo Cleaning build directories
|
||||||
|
@rm -rf $(OBJ_DIR)
|
||||||
|
@rm -rf $(DEP_DIR)
|
||||||
|
@rm -rf $(BUILD_DIR)
|
||||||
|
|
||||||
|
debug: CFLAGS := $(DEB_CFLAGS)
|
||||||
|
debug: $(BUILD_DIR)/$(TARGET)
|
||||||
|
|
||||||
|
release: CFLAGS := $(REL_CFLAGS)
|
||||||
|
release: $(BUILD_DIR)/$(TARGET)
|
||||||
|
|
||||||
|
#
|
||||||
|
# ================ Build rules =================
|
||||||
|
#
|
||||||
|
|
||||||
|
# Local or inside HPC rules
|
||||||
|
distbubbletonic: CC := mpicc
|
||||||
|
distbubbletonic: CXX := mpic++
|
||||||
|
distbubbletonic: CFLAGS := $(REL_CFLAGS) -DCODE_VERSION=BUBBLETONIC
|
||||||
|
distbubbletonic: CXXFLAGS := $(REL_CXXFLAGS) -DCODE_VERSION=BUBBLETONIC
|
||||||
|
distbubbletonic: TARGET := distbubbletonic
|
||||||
|
distbubbletonic: $(BUILD_DIR)/$(TARGET)
|
||||||
|
@mkdir -p $(OUTPUT_DIR)
|
||||||
|
cp $(BUILD_DIR)/$(TARGET) $(OUTPUT_DIR)/$(TARGET)
|
||||||
|
|
||||||
|
distbitonic: CC := mpicc
|
||||||
|
distbitonic: CXX := mpic++
|
||||||
|
distbitonic: CFLAGS := $(REL_CFLAGS) -DCODE_VERSION=BITONIC
|
||||||
|
distbitonic: CXXFLAGS := $(REL_CXXFLAGS) -DCODE_VERSION=BITONIC
|
||||||
|
distbitonic: TARGET := distbitonic
|
||||||
|
distbitonic: $(BUILD_DIR)/$(TARGET)
|
||||||
|
@mkdir -p $(OUTPUT_DIR)
|
||||||
|
cp $(BUILD_DIR)/$(TARGET) $(OUTPUT_DIR)/$(TARGET)
|
||||||
|
|
||||||
|
deb_distbubbletonic: CC := mpicc
|
||||||
|
deb_distbubbletonic: CXX := mpic++
|
||||||
|
deb_distbubbletonic: CFLAGS := $(DEB_CFLAGS) -DCODE_VERSION=BUBBLETONIC -DDEBUG
|
||||||
|
deb_distbubbletonic: CXXFLAGS := $(DEB_CXXFLAGS) -DCODE_VERSION=BUBBLETONIC -DDEBUG
|
||||||
|
deb_distbubbletonic: TARGET := deb_distbubbletonic
|
||||||
|
deb_distbubbletonic: $(BUILD_DIR)/$(TARGET)
|
||||||
|
@mkdir -p $(OUTPUT_DIR)
|
||||||
|
cp $(BUILD_DIR)/$(TARGET) $(OUTPUT_DIR)/$(TARGET)
|
||||||
|
|
||||||
|
deb_distbitonic: CC := mpicc
|
||||||
|
deb_distbitonic: CXX := mpic++
|
||||||
|
deb_distbitonic: CFLAGS := $(DEB_CFLAGS) -DCODE_VERSION=BITONIC -DDEBUG
|
||||||
|
deb_distbitonic: CXXFLAGS := $(DEB_CXXFLAGS) -DCODE_VERSION=BITONIC -DDEBUG
|
||||||
|
deb_distbitonic: TARGET := deb_distbitonic
|
||||||
|
deb_distbitonic: $(BUILD_DIR)/$(TARGET)
|
||||||
|
@mkdir -p $(OUTPUT_DIR)
|
||||||
|
cp $(BUILD_DIR)/$(TARGET) $(OUTPUT_DIR)/$(TARGET)
|
||||||
|
|
||||||
|
tests: CC := mpicc
|
||||||
|
tests: CXX := mpic++
|
||||||
|
tests: CFLAGS := $(DEB_CFLAGS) -DCODE_VERSION=BITONIC -DDEBUG -DTESTING
|
||||||
|
tests: CXXFLAGS := $(DEB_CXXFLAGS) -DCODE_VERSION=BITONIC -DDEBUG -DTESTING
|
||||||
|
tests: TARGET := tests
|
||||||
|
tests: $(BUILD_DIR)/$(TARGET)
|
||||||
|
@mkdir -p $(OUTPUT_DIR)
|
||||||
|
cp $(BUILD_DIR)/$(TARGET) $(OUTPUT_DIR)/$(TARGET)
|
||||||
|
|
||||||
|
perfbitonic: CC := mpicc
|
||||||
|
perfbitonic: CXX := mpic++
|
||||||
|
perfbitonic: CFLAGS := $(REL_CFLAGS) -g -DCODE_VERSION=BITONIC
|
||||||
|
perfbitonic: CXXFLAGS := $(REL_CXXFLAGS) -g -DCODE_VERSION=BITONIC
|
||||||
|
perfbitonic: TARGET := perfbitonic
|
||||||
|
perfbitonic: $(BUILD_DIR)/$(TARGET)
|
||||||
|
@mkdir -p $(OUTPUT_DIR)
|
||||||
|
cp $(BUILD_DIR)/$(TARGET) $(OUTPUT_DIR)/$(TARGET)
|
||||||
|
|
||||||
|
|
||||||
|
hpc-build:
|
||||||
|
make clean
|
||||||
|
make distbubbletonic
|
||||||
|
make clean
|
||||||
|
make distbitonic
|
||||||
|
make clean
|
||||||
|
make tests
|
||||||
|
|
||||||
|
|
||||||
|
all: debug distbubbletonic distbitonic
|
||||||
|
# Note:
|
||||||
|
# Add a gcc based make rule here in order for clangd to successfully scan the project files.
|
||||||
|
# Otherwise we do not need the gcc build.
|
||||||
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
# Analyze files ignore configuration
|
||||||
|
|
||||||
|
*.collapsed
|
||||||
|
*.perf
|
||||||
|
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
[Timing] (Rank 1) Total : 139 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 93 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 17 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 2415 [usec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 26 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 138 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 93 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 16 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 2463 [usec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 26 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 138 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 95 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 13 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 2667 [usec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 26 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 2) Total : 137 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 95 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 12 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 2624 [usec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 26 [msec]
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
[Timing] (Rank 0) Total : 10 [sec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 7935 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 224 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 202 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 1717 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 1) Total : 10 [sec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 7709 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 441 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 203 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 1716 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 10 [sec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 7659 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 482 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 205 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 1710 [msec]
|
||||||
|
[Timing] (Rank 2) Total : 10 [sec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 7852 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 293 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 208 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 1711 [msec]
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
[Timing] (Rank 3) Total : 20 [sec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 15 [sec]
|
||||||
|
[Timing] (Rank 3) Exchange : 1057 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 420 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 3435 [msec]
|
||||||
|
[Timing] (Rank 1) Total : 20 [sec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 15 [sec]
|
||||||
|
[Timing] (Rank 1) Exchange : 1012 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 428 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 3456 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 20 [sec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 16 [sec]
|
||||||
|
[Timing] (Rank 0) Exchange : 478 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 433 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 3437 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 2) Total : 20 [sec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 16 [sec]
|
||||||
|
[Timing] (Rank 2) Exchange : 455 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 420 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 3417 [msec]
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
[Timing] (Rank 0) Total : 140 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 95 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 15 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 2048 [usec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 26 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 1) Total : 156 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 92 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 35 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 1515 [usec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 26 [msec]
|
||||||
|
[Timing] (Rank 2) Total : 156 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 94 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 33 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 1325 [usec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 26 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 155 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 92 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 36 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 1328 [usec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 26 [msec]
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
[Timing] (Rank 2) Total : 9953 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 7910 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 172 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 163 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 1707 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 9972 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 7863 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 208 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 186 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 1715 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 1) Total : 9966 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 7661 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 429 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 161 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 1714 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 9956 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 7607 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 481 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 161 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 1705 [msec]
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
[Timing] (Rank 2) Total : 20 [sec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 16 [sec]
|
||||||
|
[Timing] (Rank 2) Exchange : 344 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 326 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 3414 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 20 [sec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 16 [sec]
|
||||||
|
[Timing] (Rank 0) Exchange : 421 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 374 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 3430 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 1) Total : 20 [sec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 15 [sec]
|
||||||
|
[Timing] (Rank 1) Exchange : 664 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 322 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 3448 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 20 [sec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 15 [sec]
|
||||||
|
[Timing] (Rank 3) Exchange : 696 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 323 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 3432 [msec]
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
[Timing] (Rank 0) Total : 8017 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 3946 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 1300 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 305 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 2464 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 3) Total : 7424 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 4147 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 495 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 302 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 2479 [msec]
|
||||||
|
[Timing] (Rank 2) Total : 8015 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 3950 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 1283 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 303 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 2477 [msec]
|
||||||
|
[Timing] (Rank 1) Total : 7957 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 3959 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 1238 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 295 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 2463 [msec]
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
[cchoutou@aristotle6 homework_2]$ squeue -u cchoutou
|
||||||
|
JOBID PARTITION NAME USER TIME TIME_LIMIT ST NODES CPUS NODELIST(REASON)
|
||||||
|
1873623 rome N4P32T4Q20 cchoutou 0:00 5:00 PD 4 512 (Priority)
|
||||||
|
1873657 rome N4P32T4Q23 cchoutou 0:00 5:00 PD 4 512 (Priority)
|
||||||
|
1873660 rome N4P32T4Q25 cchoutou 0:00 5:00 PD 4 512 (Priority)
|
||||||
|
1873663 rome N4P32T4Q27 cchoutou 0:00 5:00 PD 4 512 (Priority)
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
[cchoutou@aristotle6 homework_2]$ squeue -u cchoutou
|
||||||
|
JOBID PARTITION NAME USER TIME TIME_LIMIT ST NODES CPUS NODELIST(REASON)
|
||||||
|
1873623 rome N4P32T4Q20 cchoutou 0:00 5:00 PD 4 512 (Priority)
|
||||||
|
1873657 rome N4P32T4Q23 cchoutou 0:00 5:00 PD 4 512 (Priority)
|
||||||
|
1873660 rome N4P32T4Q25 cchoutou 0:00 5:00 PD 4 512 (Priority)
|
||||||
|
1873663 rome N4P32T4Q27 cchoutou 0:00 5:00 PD 4 512 (Priority)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 0) Total : 48 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 24 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 10 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 1017 [usec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 9637 [usec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 1) Total : 41 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 24 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 1736 [usec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 1060 [usec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 9671 [usec]
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 0) Total : 382 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 213 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 57 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 6196 [usec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 77 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 1) Total : 343 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 216 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 9082 [usec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 6211 [usec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 77 [msec]
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 0) Total : 1611 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 919 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 244 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 24 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 309 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 1) Total : 1458 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 949 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 40 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 24 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 309 [msec]
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 0) Total : 6931 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 3936 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 1188 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 98 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 1252 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 1) Total : 6299 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 4012 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 303 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 140 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 1287 [msec]
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 2) Total : 68 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 23 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 18 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 2051 [usec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 19 [msec]
|
||||||
|
[Timing] (Rank 1) Total : 68 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 23 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 14 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 2858 [usec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 19 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 69 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 24 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 19 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 2030 [usec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 19 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 3) Total : 61 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 24 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 6663 [usec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 3011 [usec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 19 [msec]
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 1) Total : 543 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 214 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 90 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 18 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 154 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 547 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 216 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 120 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 13 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 154 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 2) Total : 543 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 216 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 113 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 14 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 154 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 495 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 218 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 37 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 19 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 155 [msec]
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 0) Total : 2227 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 915 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 468 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 49 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 620 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 2) Total : 2191 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 922 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 424 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 49 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 618 [msec]
|
||||||
|
[Timing] (Rank 1) Total : 2184 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 911 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 320 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 73 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 619 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 2022 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 951 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 125 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 74 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 618 [msec]
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
[Timing] (Rank 2) Total : 8886 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 3933 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 1596 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 198 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 2463 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 9000 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 3947 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 1694 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 198 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 2470 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 1) Total : 9038 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 3991 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 1256 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 294 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 2467 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 8285 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 4049 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 496 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 296 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 2465 [msec]
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 2) Total : 102 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 24 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 31 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 4676 [usec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 29 [msec]
|
||||||
|
[Timing] (Rank 6) Total : 98 [msec]
|
||||||
|
[Timing] (Rank 6) Full-Sort : 24 [msec]
|
||||||
|
[Timing] (Rank 6) Exchange : 27 [msec]
|
||||||
|
[Timing] (Rank 6) Min-Max : 4951 [usec]
|
||||||
|
[Timing] (Rank 6) Elbow-Sort: 28 [msec]
|
||||||
|
[Timing] (Rank 1) Total : 103 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 23 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 31 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 5509 [usec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 29 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 103 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 24 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 37 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 3909 [usec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 29 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 3) Total : 89 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 24 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 15 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 5743 [usec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 29 [msec]
|
||||||
|
[Timing] (Rank 4) Total : 100 [msec]
|
||||||
|
[Timing] (Rank 4) Full-Sort : 23 [msec]
|
||||||
|
[Timing] (Rank 4) Exchange : 32 [msec]
|
||||||
|
[Timing] (Rank 4) Min-Max : 4737 [usec]
|
||||||
|
[Timing] (Rank 4) Elbow-Sort: 29 [msec]
|
||||||
|
[Timing] (Rank 5) Total : 100 [msec]
|
||||||
|
[Timing] (Rank 5) Full-Sort : 23 [msec]
|
||||||
|
[Timing] (Rank 5) Exchange : 31 [msec]
|
||||||
|
[Timing] (Rank 5) Min-Max : 4784 [usec]
|
||||||
|
[Timing] (Rank 5) Elbow-Sort: 28 [msec]
|
||||||
|
[Timing] (Rank 7) Total : 93 [msec]
|
||||||
|
[Timing] (Rank 7) Full-Sort : 24 [msec]
|
||||||
|
[Timing] (Rank 7) Exchange : 24 [msec]
|
||||||
|
[Timing] (Rank 7) Min-Max : 4736 [usec]
|
||||||
|
[Timing] (Rank 7) Elbow-Sort: 28 [msec]
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 4) Total : 740 [msec]
|
||||||
|
[Timing] (Rank 4) Full-Sort : 213 [msec]
|
||||||
|
[Timing] (Rank 4) Exchange : 174 [msec]
|
||||||
|
[Timing] (Rank 4) Min-Max : 31 [msec]
|
||||||
|
[Timing] (Rank 4) Elbow-Sort: 232 [msec]
|
||||||
|
[Timing] (Rank 2) Total : 749 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 215 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 172 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 32 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 232 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 734 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 212 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 190 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 26 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 233 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 1) Total : 749 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 212 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 174 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 31 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 232 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 708 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 220 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 69 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 64 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 241 [msec]
|
||||||
|
[Timing] (Rank 6) Total : 734 [msec]
|
||||||
|
[Timing] (Rank 6) Full-Sort : 213 [msec]
|
||||||
|
[Timing] (Rank 6) Exchange : 148 [msec]
|
||||||
|
[Timing] (Rank 6) Min-Max : 37 [msec]
|
||||||
|
[Timing] (Rank 6) Elbow-Sort: 231 [msec]
|
||||||
|
[Timing] (Rank 7) Total : 700 [msec]
|
||||||
|
[Timing] (Rank 7) Full-Sort : 219 [msec]
|
||||||
|
[Timing] (Rank 7) Exchange : 121 [msec]
|
||||||
|
[Timing] (Rank 7) Min-Max : 35 [msec]
|
||||||
|
[Timing] (Rank 7) Elbow-Sort: 232 [msec]
|
||||||
|
[Timing] (Rank 5) Total : 729 [msec]
|
||||||
|
[Timing] (Rank 5) Full-Sort : 212 [msec]
|
||||||
|
[Timing] (Rank 5) Exchange : 179 [msec]
|
||||||
|
[Timing] (Rank 5) Min-Max : 25 [msec]
|
||||||
|
[Timing] (Rank 5) Elbow-Sort: 231 [msec]
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 1) Total : 2951 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 921 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 583 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 123 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 928 [msec]
|
||||||
|
[Timing] (Rank 4) Total : 2933 [msec]
|
||||||
|
[Timing] (Rank 4) Full-Sort : 918 [msec]
|
||||||
|
[Timing] (Rank 4) Exchange : 614 [msec]
|
||||||
|
[Timing] (Rank 4) Min-Max : 124 [msec]
|
||||||
|
[Timing] (Rank 4) Elbow-Sort: 924 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 2982 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 931 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 813 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 74 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 928 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 2) Total : 2953 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 915 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 700 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 99 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 930 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 2751 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 951 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 279 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 148 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 930 [msec]
|
||||||
|
[Timing] (Rank 5) Total : 2970 [msec]
|
||||||
|
[Timing] (Rank 5) Full-Sort : 927 [msec]
|
||||||
|
[Timing] (Rank 5) Exchange : 628 [msec]
|
||||||
|
[Timing] (Rank 5) Min-Max : 123 [msec]
|
||||||
|
[Timing] (Rank 5) Elbow-Sort: 923 [msec]
|
||||||
|
[Timing] (Rank 6) Total : 2935 [msec]
|
||||||
|
[Timing] (Rank 6) Full-Sort : 928 [msec]
|
||||||
|
[Timing] (Rank 6) Exchange : 532 [msec]
|
||||||
|
[Timing] (Rank 6) Min-Max : 149 [msec]
|
||||||
|
[Timing] (Rank 6) Elbow-Sort: 921 [msec]
|
||||||
|
[Timing] (Rank 7) Total : 2822 [msec]
|
||||||
|
[Timing] (Rank 7) Full-Sort : 940 [msec]
|
||||||
|
[Timing] (Rank 7) Exchange : 387 [msec]
|
||||||
|
[Timing] (Rank 7) Min-Max : 148 [msec]
|
||||||
|
[Timing] (Rank 7) Elbow-Sort: 920 [msec]
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 6) Total : 11 [sec]
|
||||||
|
[Timing] (Rank 6) Full-Sort : 3945 [msec]
|
||||||
|
[Timing] (Rank 6) Exchange : 1903 [msec]
|
||||||
|
[Timing] (Rank 6) Min-Max : 591 [msec]
|
||||||
|
[Timing] (Rank 6) Elbow-Sort: 3716 [msec]
|
||||||
|
[Timing] (Rank 1) Total : 11 [sec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 3962 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 2090 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 491 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 3724 [msec]
|
||||||
|
[Timing] (Rank 4) Total : 11 [sec]
|
||||||
|
[Timing] (Rank 4) Full-Sort : 3936 [msec]
|
||||||
|
[Timing] (Rank 4) Exchange : 2192 [msec]
|
||||||
|
[Timing] (Rank 4) Min-Max : 494 [msec]
|
||||||
|
[Timing] (Rank 4) Elbow-Sort: 3710 [msec]
|
||||||
|
[Timing] (Rank 7) Total : 11 [sec]
|
||||||
|
[Timing] (Rank 7) Full-Sort : 4041 [msec]
|
||||||
|
[Timing] (Rank 7) Exchange : 1799 [msec]
|
||||||
|
[Timing] (Rank 7) Min-Max : 395 [msec]
|
||||||
|
[Timing] (Rank 7) Elbow-Sort: 3708 [msec]
|
||||||
|
[Timing] (Rank 5) Total : 11 [sec]
|
||||||
|
[Timing] (Rank 5) Full-Sort : 3954 [msec]
|
||||||
|
[Timing] (Rank 5) Exchange : 2773 [msec]
|
||||||
|
[Timing] (Rank 5) Min-Max : 294 [msec]
|
||||||
|
[Timing] (Rank 5) Elbow-Sort: 3705 [msec]
|
||||||
|
[Timing] (Rank 2) Total : 11 [sec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 3963 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 2245 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 498 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 3741 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 11 [sec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 4049 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 1161 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 590 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 3731 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 11 [sec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 3949 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 2590 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 398 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 3726 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 0) Total : 191 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 48 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 134 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 1539 [usec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 4774 [usec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 1) Total : 191 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 97 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 84 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 1582 [usec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 4748 [usec]
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 0) Total : 333 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 200 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 52 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 16 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 42 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 1) Total : 332 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 196 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 51 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 16 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 41 [msec]
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 0) Total : 1333 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 859 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 141 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 62 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 176 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 1) Total : 1337 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 841 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 142 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 63 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 178 [msec]
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
systemd-cat: symbol lookup error: /usr/lib64/systemd/libsystemd-shared-252.so: undefined symbol: seccomp_api_get
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
systemd-cat: symbol lookup error: /usr/lib64/systemd/libsystemd-shared-252.so: undefined symbol: seccomp_api_get
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
systemd-cat: symbol lookup error: /usr/lib64/systemd/libsystemd-shared-252.so: undefined symbol: seccomp_api_get
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
systemd-cat: symbol lookup error: /usr/lib64/systemd/libsystemd-shared-252.so: undefined symbol: seccomp_api_get
|
||||||
|
Autoloading popt/1.16
|
||||||
|
systemd-cat: symbol lookup error: /usr/lib64/systemd/libsystemd-shared-252.so: undefined symbol: seccomp_api_get
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
systemd-cat: symbol lookup error: /usr/lib64/systemd/libsystemd-shared-252.so: undefined symbol: seccomp_api_get
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
systemd-cat: symbol lookup error: /usr/lib64/systemd/libsystemd-shared-252.so: undefined symbol: seccomp_api_get
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
systemd-cat: symbol lookup error: /usr/lib64/systemd/libsystemd-shared-252.so: undefined symbol: seccomp_api_get
|
||||||
|
systemd-cat: symbol lookup error: /usr/lib64/systemd/libsystemd-shared-252.so: undefined symbol: seccomp_api_get
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
systemd-cat: symbol lookup error: /usr/lib64/systemd/libsystemd-shared-252.so: undefined symbol: seccomp_api_get
|
||||||
|
systemd-cat: symbol lookup error: /usr/lib64/systemd/libsystemd-shared-252.so: undefined symbol: seccomp_api_get
|
||||||
|
systemd-cat: symbol lookup error: /usr/lib64/systemd/libsystemd-shared-252.so: undefined symbol: seccomp_api_get
|
||||||
|
systemd-cat: symbol lookup error: /usr/lib64/systemd/libsystemd-shared-252.so: undefined symbol: seccomp_api_get
|
||||||
|
[Timing] (Rank 1) Total : 4898 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 3456 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 196 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 177 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 659 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 4915 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 3581 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 167 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 181 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 663 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 1) Total : 49 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 22 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 5706 [usec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 3424 [usec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 11 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 49 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 22 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 9189 [usec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 2239 [usec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 11 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 2) Total : 49 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 23 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 8656 [usec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 2298 [usec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 10 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 48 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 22 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 6006 [usec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 3631 [usec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 10 [msec]
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 2) Total : 425 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 215 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 63 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 22 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 88 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 428 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 210 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 44 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 30 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 91 [msec]
|
||||||
|
[Timing] (Rank 1) Total : 435 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 210 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 45 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 29 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 92 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 434 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 217 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 67 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 21 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 92 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 0) Total : 1759 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 941 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 222 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 84 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 372 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 3) Total : 1736 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 904 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 140 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 128 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 362 [msec]
|
||||||
|
[Timing] (Rank 1) Total : 1757 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 903 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 130 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 129 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 369 [msec]
|
||||||
|
[Timing] (Rank 2) Total : 1727 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 945 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 202 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 83 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 360 [msec]
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 2) Total : 7075 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 4050 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 713 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 317 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 1453 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 7107 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 3872 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 507 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 464 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 1470 [msec]
|
||||||
|
[Timing] (Rank 1) Total : 7195 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 3896 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 417 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 456 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 1530 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 7178 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 4049 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 767 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 315 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 1504 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 6) Total : 70 [msec]
|
||||||
|
[Timing] (Rank 6) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 6) Exchange : 22 [msec]
|
||||||
|
[Timing] (Rank 6) Min-Max : 5863 [usec]
|
||||||
|
[Timing] (Rank 6) Elbow-Sort: 13 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 71 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 22 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 14 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 6790 [usec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 16 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 72 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 23 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 21 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 4246 [usec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 16 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 1) Total : 72 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 22 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 14 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 6672 [usec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 16 [msec]
|
||||||
|
[Timing] (Rank 2) Total : 71 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 23 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 16 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 5789 [usec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 16 [msec]
|
||||||
|
[Timing] (Rank 5) Total : 69 [msec]
|
||||||
|
[Timing] (Rank 5) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 5) Exchange : 25 [msec]
|
||||||
|
[Timing] (Rank 5) Min-Max : 3807 [usec]
|
||||||
|
[Timing] (Rank 5) Elbow-Sort: 14 [msec]
|
||||||
|
[Timing] (Rank 7) Total : 70 [msec]
|
||||||
|
[Timing] (Rank 7) Full-Sort : 18 [msec]
|
||||||
|
[Timing] (Rank 7) Exchange : 27 [msec]
|
||||||
|
[Timing] (Rank 7) Min-Max : 3917 [usec]
|
||||||
|
[Timing] (Rank 7) Elbow-Sort: 13 [msec]
|
||||||
|
[Timing] (Rank 4) Total : 70 [msec]
|
||||||
|
[Timing] (Rank 4) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 4) Exchange : 22 [msec]
|
||||||
|
[Timing] (Rank 4) Min-Max : 4694 [usec]
|
||||||
|
[Timing] (Rank 4) Elbow-Sort: 14 [msec]
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 5) Total : 563 [msec]
|
||||||
|
[Timing] (Rank 5) Full-Sort : 175 [msec]
|
||||||
|
[Timing] (Rank 5) Exchange : 182 [msec]
|
||||||
|
[Timing] (Rank 5) Min-Max : 30 [msec]
|
||||||
|
[Timing] (Rank 5) Elbow-Sort: 116 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 581 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 207 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 89 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 54 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 139 [msec]
|
||||||
|
[Timing] (Rank 6) Total : 570 [msec]
|
||||||
|
[Timing] (Rank 6) Full-Sort : 179 [msec]
|
||||||
|
[Timing] (Rank 6) Exchange : 161 [msec]
|
||||||
|
[Timing] (Rank 6) Min-Max : 45 [msec]
|
||||||
|
[Timing] (Rank 6) Elbow-Sort: 115 [msec]
|
||||||
|
[Timing] (Rank 7) Total : 569 [msec]
|
||||||
|
[Timing] (Rank 7) Full-Sort : 175 [msec]
|
||||||
|
[Timing] (Rank 7) Exchange : 194 [msec]
|
||||||
|
[Timing] (Rank 7) Min-Max : 31 [msec]
|
||||||
|
[Timing] (Rank 7) Elbow-Sort: 115 [msec]
|
||||||
|
[Timing] (Rank 4) Total : 565 [msec]
|
||||||
|
[Timing] (Rank 4) Full-Sort : 183 [msec]
|
||||||
|
[Timing] (Rank 4) Exchange : 161 [msec]
|
||||||
|
[Timing] (Rank 4) Min-Max : 37 [msec]
|
||||||
|
[Timing] (Rank 4) Elbow-Sort: 119 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 581 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 214 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 132 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 35 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 141 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 2) Total : 580 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 215 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 102 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 45 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 137 [msec]
|
||||||
|
[Timing] (Rank 1) Total : 580 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 207 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 86 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 54 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 136 [msec]
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 6) Total : 2315 [msec]
|
||||||
|
[Timing] (Rank 6) Full-Sort : 775 [msec]
|
||||||
|
[Timing] (Rank 6) Exchange : 599 [msec]
|
||||||
|
[Timing] (Rank 6) Min-Max : 201 [msec]
|
||||||
|
[Timing] (Rank 6) Elbow-Sort: 463 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 2346 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 893 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 297 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 254 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 553 [msec]
|
||||||
|
[Timing] (Rank 4) Total : 2327 [msec]
|
||||||
|
[Timing] (Rank 4) Full-Sort : 803 [msec]
|
||||||
|
[Timing] (Rank 4) Exchange : 623 [msec]
|
||||||
|
[Timing] (Rank 4) Min-Max : 164 [msec]
|
||||||
|
[Timing] (Rank 4) Elbow-Sort: 477 [msec]
|
||||||
|
[Timing] (Rank 5) Total : 2320 [msec]
|
||||||
|
[Timing] (Rank 5) Full-Sort : 745 [msec]
|
||||||
|
[Timing] (Rank 5) Exchange : 673 [msec]
|
||||||
|
[Timing] (Rank 5) Min-Max : 166 [msec]
|
||||||
|
[Timing] (Rank 5) Elbow-Sort: 470 [msec]
|
||||||
|
[Timing] (Rank 7) Total : 2315 [msec]
|
||||||
|
[Timing] (Rank 7) Full-Sort : 744 [msec]
|
||||||
|
[Timing] (Rank 7) Exchange : 604 [msec]
|
||||||
|
[Timing] (Rank 7) Min-Max : 199 [msec]
|
||||||
|
[Timing] (Rank 7) Elbow-Sort: 466 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 2362 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 934 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 565 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 120 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 556 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 1) Total : 2363 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 901 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 353 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 204 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 568 [msec]
|
||||||
|
[Timing] (Rank 2) Total : 2340 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 937 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 436 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 171 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 547 [msec]
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 5) Total : 9497 [msec]
|
||||||
|
[Timing] (Rank 5) Full-Sort : 3219 [msec]
|
||||||
|
[Timing] (Rank 5) Exchange : 2950 [msec]
|
||||||
|
[Timing] (Rank 5) Min-Max : 486 [msec]
|
||||||
|
[Timing] (Rank 5) Elbow-Sort: 1906 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 9670 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 4061 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 1793 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 674 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 2252 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 6) Total : 9511 [msec]
|
||||||
|
[Timing] (Rank 6) Full-Sort : 3373 [msec]
|
||||||
|
[Timing] (Rank 6) Exchange : 2429 [msec]
|
||||||
|
[Timing] (Rank 6) Min-Max : 738 [msec]
|
||||||
|
[Timing] (Rank 6) Elbow-Sort: 1866 [msec]
|
||||||
|
[Timing] (Rank 7) Total : 9506 [msec]
|
||||||
|
[Timing] (Rank 7) Full-Sort : 3210 [msec]
|
||||||
|
[Timing] (Rank 7) Exchange : 2838 [msec]
|
||||||
|
[Timing] (Rank 7) Min-Max : 612 [msec]
|
||||||
|
[Timing] (Rank 7) Elbow-Sort: 1873 [msec]
|
||||||
|
[Timing] (Rank 4) Total : 9545 [msec]
|
||||||
|
[Timing] (Rank 4) Full-Sort : 3445 [msec]
|
||||||
|
[Timing] (Rank 4) Exchange : 2548 [msec]
|
||||||
|
[Timing] (Rank 4) Min-Max : 601 [msec]
|
||||||
|
[Timing] (Rank 4) Elbow-Sort: 1928 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 9587 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 3917 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 1076 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 988 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 2214 [msec]
|
||||||
|
[Timing] (Rank 1) Total : 9658 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 3922 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 1326 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 832 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 2241 [msec]
|
||||||
|
[Timing] (Rank 2) Total : 9578 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 4070 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 1248 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 837 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 2190 [msec]
|
||||||
@@ -0,0 +1,342 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 34) Total : 192 [msec]
|
||||||
|
[Timing] (Rank 34) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 34) Exchange : 95 [msec]
|
||||||
|
[Timing] (Rank 34) Min-Max : 23 [msec]
|
||||||
|
[Timing] (Rank 34) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 33) Total : 192 [msec]
|
||||||
|
[Timing] (Rank 33) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 33) Exchange : 99 [msec]
|
||||||
|
[Timing] (Rank 33) Min-Max : 22 [msec]
|
||||||
|
[Timing] (Rank 33) Elbow-Sort: 28 [msec]
|
||||||
|
[Timing] (Rank 42) Total : 190 [msec]
|
||||||
|
[Timing] (Rank 42) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 42) Exchange : 110 [msec]
|
||||||
|
[Timing] (Rank 42) Min-Max : 15 [msec]
|
||||||
|
[Timing] (Rank 42) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 41) Total : 189 [msec]
|
||||||
|
[Timing] (Rank 41) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 41) Exchange : 96 [msec]
|
||||||
|
[Timing] (Rank 41) Min-Max : 23 [msec]
|
||||||
|
[Timing] (Rank 41) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 35) Total : 193 [msec]
|
||||||
|
[Timing] (Rank 35) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 35) Exchange : 95 [msec]
|
||||||
|
[Timing] (Rank 35) Min-Max : 25 [msec]
|
||||||
|
[Timing] (Rank 35) Elbow-Sort: 28 [msec]
|
||||||
|
[Timing] (Rank 38) Total : 192 [msec]
|
||||||
|
[Timing] (Rank 38) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 38) Exchange : 90 [msec]
|
||||||
|
[Timing] (Rank 38) Min-Max : 27 [msec]
|
||||||
|
[Timing] (Rank 38) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 43) Total : 190 [msec]
|
||||||
|
[Timing] (Rank 43) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 43) Exchange : 107 [msec]
|
||||||
|
[Timing] (Rank 43) Min-Max : 16 [msec]
|
||||||
|
[Timing] (Rank 43) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 44) Total : 191 [msec]
|
||||||
|
[Timing] (Rank 44) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 44) Exchange : 95 [msec]
|
||||||
|
[Timing] (Rank 44) Min-Max : 22 [msec]
|
||||||
|
[Timing] (Rank 44) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 18) Total : 201 [msec]
|
||||||
|
[Timing] (Rank 18) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 18) Exchange : 100 [msec]
|
||||||
|
[Timing] (Rank 18) Min-Max : 27 [msec]
|
||||||
|
[Timing] (Rank 18) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 45) Total : 188 [msec]
|
||||||
|
[Timing] (Rank 45) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 45) Exchange : 99 [msec]
|
||||||
|
[Timing] (Rank 45) Min-Max : 18 [msec]
|
||||||
|
[Timing] (Rank 45) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 36) Total : 189 [msec]
|
||||||
|
[Timing] (Rank 36) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 36) Exchange : 96 [msec]
|
||||||
|
[Timing] (Rank 36) Min-Max : 22 [msec]
|
||||||
|
[Timing] (Rank 36) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 46) Total : 191 [msec]
|
||||||
|
[Timing] (Rank 46) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 46) Exchange : 97 [msec]
|
||||||
|
[Timing] (Rank 46) Min-Max : 22 [msec]
|
||||||
|
[Timing] (Rank 46) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 37) Total : 191 [msec]
|
||||||
|
[Timing] (Rank 37) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 37) Exchange : 96 [msec]
|
||||||
|
[Timing] (Rank 37) Min-Max : 23 [msec]
|
||||||
|
[Timing] (Rank 37) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 40) Total : 190 [msec]
|
||||||
|
[Timing] (Rank 40) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 40) Exchange : 103 [msec]
|
||||||
|
[Timing] (Rank 40) Min-Max : 21 [msec]
|
||||||
|
[Timing] (Rank 40) Elbow-Sort: 28 [msec]
|
||||||
|
[Timing] (Rank 47) Total : 192 [msec]
|
||||||
|
[Timing] (Rank 47) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 47) Exchange : 110 [msec]
|
||||||
|
[Timing] (Rank 47) Min-Max : 15 [msec]
|
||||||
|
[Timing] (Rank 47) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 54) Total : 193 [msec]
|
||||||
|
[Timing] (Rank 54) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 54) Exchange : 101 [msec]
|
||||||
|
[Timing] (Rank 54) Min-Max : 20 [msec]
|
||||||
|
[Timing] (Rank 54) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 39) Total : 191 [msec]
|
||||||
|
[Timing] (Rank 39) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 39) Exchange : 99 [msec]
|
||||||
|
[Timing] (Rank 39) Min-Max : 20 [msec]
|
||||||
|
[Timing] (Rank 39) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 13) Total : 199 [msec]
|
||||||
|
[Timing] (Rank 13) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 13) Exchange : 103 [msec]
|
||||||
|
[Timing] (Rank 13) Min-Max : 20 [msec]
|
||||||
|
[Timing] (Rank 13) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 32) Total : 192 [msec]
|
||||||
|
[Timing] (Rank 32) Full-Sort : 21 [msec]
|
||||||
|
[Timing] (Rank 32) Exchange : 105 [msec]
|
||||||
|
[Timing] (Rank 32) Min-Max : 18 [msec]
|
||||||
|
[Timing] (Rank 32) Elbow-Sort: 29 [msec]
|
||||||
|
[Timing] (Rank 20) Total : 200 [msec]
|
||||||
|
[Timing] (Rank 20) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 20) Exchange : 105 [msec]
|
||||||
|
[Timing] (Rank 20) Min-Max : 25 [msec]
|
||||||
|
[Timing] (Rank 20) Elbow-Sort: 28 [msec]
|
||||||
|
[Timing] (Rank 26) Total : 200 [msec]
|
||||||
|
[Timing] (Rank 26) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 26) Exchange : 100 [msec]
|
||||||
|
[Timing] (Rank 26) Min-Max : 27 [msec]
|
||||||
|
[Timing] (Rank 26) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 31) Total : 200 [msec]
|
||||||
|
[Timing] (Rank 31) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 31) Exchange : 117 [msec]
|
||||||
|
[Timing] (Rank 31) Min-Max : 17 [msec]
|
||||||
|
[Timing] (Rank 31) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 19) Total : 200 [msec]
|
||||||
|
[Timing] (Rank 19) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 19) Exchange : 94 [msec]
|
||||||
|
[Timing] (Rank 19) Min-Max : 31 [msec]
|
||||||
|
[Timing] (Rank 19) Elbow-Sort: 28 [msec]
|
||||||
|
[Timing] (Rank 22) Total : 201 [msec]
|
||||||
|
[Timing] (Rank 22) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 22) Exchange : 101 [msec]
|
||||||
|
[Timing] (Rank 22) Min-Max : 28 [msec]
|
||||||
|
[Timing] (Rank 22) Elbow-Sort: 28 [msec]
|
||||||
|
[Timing] (Rank 27) Total : 199 [msec]
|
||||||
|
[Timing] (Rank 27) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 27) Exchange : 102 [msec]
|
||||||
|
[Timing] (Rank 27) Min-Max : 25 [msec]
|
||||||
|
[Timing] (Rank 27) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 30) Total : 200 [msec]
|
||||||
|
[Timing] (Rank 30) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 30) Exchange : 105 [msec]
|
||||||
|
[Timing] (Rank 30) Min-Max : 25 [msec]
|
||||||
|
[Timing] (Rank 30) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 24) Total : 200 [msec]
|
||||||
|
[Timing] (Rank 24) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 24) Exchange : 92 [msec]
|
||||||
|
[Timing] (Rank 24) Min-Max : 33 [msec]
|
||||||
|
[Timing] (Rank 24) Elbow-Sort: 28 [msec]
|
||||||
|
[Timing] (Rank 29) Total : 199 [msec]
|
||||||
|
[Timing] (Rank 29) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 29) Exchange : 104 [msec]
|
||||||
|
[Timing] (Rank 29) Min-Max : 25 [msec]
|
||||||
|
[Timing] (Rank 29) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 16) Total : 201 [msec]
|
||||||
|
[Timing] (Rank 16) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 16) Exchange : 113 [msec]
|
||||||
|
[Timing] (Rank 16) Min-Max : 21 [msec]
|
||||||
|
[Timing] (Rank 16) Elbow-Sort: 28 [msec]
|
||||||
|
[Timing] (Rank 23) Total : 200 [msec]
|
||||||
|
[Timing] (Rank 23) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 23) Exchange : 109 [msec]
|
||||||
|
[Timing] (Rank 23) Min-Max : 24 [msec]
|
||||||
|
[Timing] (Rank 23) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 28) Total : 199 [msec]
|
||||||
|
[Timing] (Rank 28) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 28) Exchange : 88 [msec]
|
||||||
|
[Timing] (Rank 28) Min-Max : 34 [msec]
|
||||||
|
[Timing] (Rank 28) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 21) Total : 200 [msec]
|
||||||
|
[Timing] (Rank 21) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 21) Exchange : 117 [msec]
|
||||||
|
[Timing] (Rank 21) Min-Max : 17 [msec]
|
||||||
|
[Timing] (Rank 21) Elbow-Sort: 28 [msec]
|
||||||
|
[Timing] (Rank 17) Total : 201 [msec]
|
||||||
|
[Timing] (Rank 17) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 17) Exchange : 103 [msec]
|
||||||
|
[Timing] (Rank 17) Min-Max : 26 [msec]
|
||||||
|
[Timing] (Rank 17) Elbow-Sort: 28 [msec]
|
||||||
|
[Timing] (Rank 25) Total : 199 [msec]
|
||||||
|
[Timing] (Rank 25) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 25) Exchange : 87 [msec]
|
||||||
|
[Timing] (Rank 25) Min-Max : 33 [msec]
|
||||||
|
[Timing] (Rank 25) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 11) Total : 197 [msec]
|
||||||
|
[Timing] (Rank 11) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 11) Exchange : 111 [msec]
|
||||||
|
[Timing] (Rank 11) Min-Max : 17 [msec]
|
||||||
|
[Timing] (Rank 11) Elbow-Sort: 28 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 198 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 21 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 131 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 7090 [usec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 28 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 1) Total : 199 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 116 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 13 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 28 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 198 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 109 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 19 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 28 [msec]
|
||||||
|
[Timing] (Rank 7) Total : 198 [msec]
|
||||||
|
[Timing] (Rank 7) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 7) Exchange : 113 [msec]
|
||||||
|
[Timing] (Rank 7) Min-Max : 15 [msec]
|
||||||
|
[Timing] (Rank 7) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 10) Total : 197 [msec]
|
||||||
|
[Timing] (Rank 10) Full-Sort : 21 [msec]
|
||||||
|
[Timing] (Rank 10) Exchange : 115 [msec]
|
||||||
|
[Timing] (Rank 10) Min-Max : 14 [msec]
|
||||||
|
[Timing] (Rank 10) Elbow-Sort: 28 [msec]
|
||||||
|
[Timing] (Rank 60) Total : 194 [msec]
|
||||||
|
[Timing] (Rank 60) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 60) Exchange : 90 [msec]
|
||||||
|
[Timing] (Rank 60) Min-Max : 28 [msec]
|
||||||
|
[Timing] (Rank 60) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 57) Total : 194 [msec]
|
||||||
|
[Timing] (Rank 57) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 57) Exchange : 95 [msec]
|
||||||
|
[Timing] (Rank 57) Min-Max : 23 [msec]
|
||||||
|
[Timing] (Rank 57) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 14) Total : 199 [msec]
|
||||||
|
[Timing] (Rank 14) Full-Sort : 21 [msec]
|
||||||
|
[Timing] (Rank 14) Exchange : 105 [msec]
|
||||||
|
[Timing] (Rank 14) Min-Max : 20 [msec]
|
||||||
|
[Timing] (Rank 14) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 8) Total : 198 [msec]
|
||||||
|
[Timing] (Rank 8) Full-Sort : 21 [msec]
|
||||||
|
[Timing] (Rank 8) Exchange : 112 [msec]
|
||||||
|
[Timing] (Rank 8) Min-Max : 18 [msec]
|
||||||
|
[Timing] (Rank 8) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 2) Total : 198 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 21 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 118 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 13 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 63) Total : 194 [msec]
|
||||||
|
[Timing] (Rank 63) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 63) Exchange : 114 [msec]
|
||||||
|
[Timing] (Rank 63) Min-Max : 15 [msec]
|
||||||
|
[Timing] (Rank 63) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 4) Total : 198 [msec]
|
||||||
|
[Timing] (Rank 4) Full-Sort : 21 [msec]
|
||||||
|
[Timing] (Rank 4) Exchange : 111 [msec]
|
||||||
|
[Timing] (Rank 4) Min-Max : 16 [msec]
|
||||||
|
[Timing] (Rank 4) Elbow-Sort: 28 [msec]
|
||||||
|
[Timing] (Rank 5) Total : 198 [msec]
|
||||||
|
[Timing] (Rank 5) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 5) Exchange : 110 [msec]
|
||||||
|
[Timing] (Rank 5) Min-Max : 16 [msec]
|
||||||
|
[Timing] (Rank 5) Elbow-Sort: 29 [msec]
|
||||||
|
[Timing] (Rank 53) Total : 193 [msec]
|
||||||
|
[Timing] (Rank 53) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 53) Exchange : 112 [msec]
|
||||||
|
[Timing] (Rank 53) Min-Max : 14 [msec]
|
||||||
|
[Timing] (Rank 53) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 58) Total : 193 [msec]
|
||||||
|
[Timing] (Rank 58) Full-Sort : 21 [msec]
|
||||||
|
[Timing] (Rank 58) Exchange : 106 [msec]
|
||||||
|
[Timing] (Rank 58) Min-Max : 19 [msec]
|
||||||
|
[Timing] (Rank 58) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 6) Total : 198 [msec]
|
||||||
|
[Timing] (Rank 6) Full-Sort : 21 [msec]
|
||||||
|
[Timing] (Rank 6) Exchange : 104 [msec]
|
||||||
|
[Timing] (Rank 6) Min-Max : 19 [msec]
|
||||||
|
[Timing] (Rank 6) Elbow-Sort: 28 [msec]
|
||||||
|
[Timing] (Rank 55) Total : 193 [msec]
|
||||||
|
[Timing] (Rank 55) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 55) Exchange : 102 [msec]
|
||||||
|
[Timing] (Rank 55) Min-Max : 19 [msec]
|
||||||
|
[Timing] (Rank 55) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 9) Total : 199 [msec]
|
||||||
|
[Timing] (Rank 9) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 9) Exchange : 103 [msec]
|
||||||
|
[Timing] (Rank 9) Min-Max : 22 [msec]
|
||||||
|
[Timing] (Rank 9) Elbow-Sort: 28 [msec]
|
||||||
|
[Timing] (Rank 52) Total : 193 [msec]
|
||||||
|
[Timing] (Rank 52) Full-Sort : 21 [msec]
|
||||||
|
[Timing] (Rank 52) Exchange : 100 [msec]
|
||||||
|
[Timing] (Rank 52) Min-Max : 20 [msec]
|
||||||
|
[Timing] (Rank 52) Elbow-Sort: 28 [msec]
|
||||||
|
[Timing] (Rank 15) Total : 199 [msec]
|
||||||
|
[Timing] (Rank 15) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 15) Exchange : 114 [msec]
|
||||||
|
[Timing] (Rank 15) Min-Max : 15 [msec]
|
||||||
|
[Timing] (Rank 15) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 62) Total : 193 [msec]
|
||||||
|
[Timing] (Rank 62) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 62) Exchange : 103 [msec]
|
||||||
|
[Timing] (Rank 62) Min-Max : 22 [msec]
|
||||||
|
[Timing] (Rank 62) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 12) Total : 199 [msec]
|
||||||
|
[Timing] (Rank 12) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 12) Exchange : 101 [msec]
|
||||||
|
[Timing] (Rank 12) Min-Max : 22 [msec]
|
||||||
|
[Timing] (Rank 12) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 51) Total : 193 [msec]
|
||||||
|
[Timing] (Rank 51) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 51) Exchange : 87 [msec]
|
||||||
|
[Timing] (Rank 51) Min-Max : 28 [msec]
|
||||||
|
[Timing] (Rank 51) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 50) Total : 193 [msec]
|
||||||
|
[Timing] (Rank 50) Full-Sort : 21 [msec]
|
||||||
|
[Timing] (Rank 50) Exchange : 95 [msec]
|
||||||
|
[Timing] (Rank 50) Min-Max : 23 [msec]
|
||||||
|
[Timing] (Rank 50) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 49) Total : 194 [msec]
|
||||||
|
[Timing] (Rank 49) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 49) Exchange : 97 [msec]
|
||||||
|
[Timing] (Rank 49) Min-Max : 24 [msec]
|
||||||
|
[Timing] (Rank 49) Elbow-Sort: 28 [msec]
|
||||||
|
[Timing] (Rank 56) Total : 193 [msec]
|
||||||
|
[Timing] (Rank 56) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 56) Exchange : 98 [msec]
|
||||||
|
[Timing] (Rank 56) Min-Max : 23 [msec]
|
||||||
|
[Timing] (Rank 56) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 59) Total : 194 [msec]
|
||||||
|
[Timing] (Rank 59) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 59) Exchange : 108 [msec]
|
||||||
|
[Timing] (Rank 59) Min-Max : 17 [msec]
|
||||||
|
[Timing] (Rank 59) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 61) Total : 193 [msec]
|
||||||
|
[Timing] (Rank 61) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 61) Exchange : 105 [msec]
|
||||||
|
[Timing] (Rank 61) Min-Max : 20 [msec]
|
||||||
|
[Timing] (Rank 61) Elbow-Sort: 27 [msec]
|
||||||
|
[Timing] (Rank 48) Total : 194 [msec]
|
||||||
|
[Timing] (Rank 48) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 48) Exchange : 105 [msec]
|
||||||
|
[Timing] (Rank 48) Min-Max : 19 [msec]
|
||||||
|
[Timing] (Rank 48) Elbow-Sort: 28 [msec]
|
||||||
@@ -0,0 +1,342 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 40) Total : 1419 [msec]
|
||||||
|
[Timing] (Rank 40) Full-Sort : 219 [msec]
|
||||||
|
[Timing] (Rank 40) Exchange : 651 [msec]
|
||||||
|
[Timing] (Rank 40) Min-Max : 165 [msec]
|
||||||
|
[Timing] (Rank 40) Elbow-Sort: 241 [msec]
|
||||||
|
[Timing] (Rank 30) Total : 1458 [msec]
|
||||||
|
[Timing] (Rank 30) Full-Sort : 201 [msec]
|
||||||
|
[Timing] (Rank 30) Exchange : 621 [msec]
|
||||||
|
[Timing] (Rank 30) Min-Max : 200 [msec]
|
||||||
|
[Timing] (Rank 30) Elbow-Sort: 236 [msec]
|
||||||
|
[Timing] (Rank 57) Total : 1428 [msec]
|
||||||
|
[Timing] (Rank 57) Full-Sort : 217 [msec]
|
||||||
|
[Timing] (Rank 57) Exchange : 488 [msec]
|
||||||
|
[Timing] (Rank 57) Min-Max : 254 [msec]
|
||||||
|
[Timing] (Rank 57) Elbow-Sort: 242 [msec]
|
||||||
|
[Timing] (Rank 2) Total : 1453 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 197 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 751 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 113 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 235 [msec]
|
||||||
|
[Timing] (Rank 36) Total : 1443 [msec]
|
||||||
|
[Timing] (Rank 36) Full-Sort : 219 [msec]
|
||||||
|
[Timing] (Rank 36) Exchange : 557 [msec]
|
||||||
|
[Timing] (Rank 36) Min-Max : 241 [msec]
|
||||||
|
[Timing] (Rank 36) Elbow-Sort: 236 [msec]
|
||||||
|
[Timing] (Rank 42) Total : 1416 [msec]
|
||||||
|
[Timing] (Rank 42) Full-Sort : 219 [msec]
|
||||||
|
[Timing] (Rank 42) Exchange : 689 [msec]
|
||||||
|
[Timing] (Rank 42) Min-Max : 145 [msec]
|
||||||
|
[Timing] (Rank 42) Elbow-Sort: 240 [msec]
|
||||||
|
[Timing] (Rank 32) Total : 1448 [msec]
|
||||||
|
[Timing] (Rank 32) Full-Sort : 219 [msec]
|
||||||
|
[Timing] (Rank 32) Exchange : 710 [msec]
|
||||||
|
[Timing] (Rank 32) Min-Max : 154 [msec]
|
||||||
|
[Timing] (Rank 32) Elbow-Sort: 244 [msec]
|
||||||
|
[Timing] (Rank 43) Total : 1417 [msec]
|
||||||
|
[Timing] (Rank 43) Full-Sort : 212 [msec]
|
||||||
|
[Timing] (Rank 43) Exchange : 667 [msec]
|
||||||
|
[Timing] (Rank 43) Min-Max : 155 [msec]
|
||||||
|
[Timing] (Rank 43) Elbow-Sort: 242 [msec]
|
||||||
|
[Timing] (Rank 45) Total : 1444 [msec]
|
||||||
|
[Timing] (Rank 45) Full-Sort : 212 [msec]
|
||||||
|
[Timing] (Rank 45) Exchange : 536 [msec]
|
||||||
|
[Timing] (Rank 45) Min-Max : 258 [msec]
|
||||||
|
[Timing] (Rank 45) Elbow-Sort: 238 [msec]
|
||||||
|
[Timing] (Rank 39) Total : 1443 [msec]
|
||||||
|
[Timing] (Rank 39) Full-Sort : 215 [msec]
|
||||||
|
[Timing] (Rank 39) Exchange : 516 [msec]
|
||||||
|
[Timing] (Rank 39) Min-Max : 268 [msec]
|
||||||
|
[Timing] (Rank 39) Elbow-Sort: 233 [msec]
|
||||||
|
[Timing] (Rank 44) Total : 1443 [msec]
|
||||||
|
[Timing] (Rank 44) Full-Sort : 217 [msec]
|
||||||
|
[Timing] (Rank 44) Exchange : 512 [msec]
|
||||||
|
[Timing] (Rank 44) Min-Max : 267 [msec]
|
||||||
|
[Timing] (Rank 44) Elbow-Sort: 236 [msec]
|
||||||
|
[Timing] (Rank 46) Total : 1444 [msec]
|
||||||
|
[Timing] (Rank 46) Full-Sort : 218 [msec]
|
||||||
|
[Timing] (Rank 46) Exchange : 523 [msec]
|
||||||
|
[Timing] (Rank 46) Min-Max : 264 [msec]
|
||||||
|
[Timing] (Rank 46) Elbow-Sort: 235 [msec]
|
||||||
|
[Timing] (Rank 41) Total : 1419 [msec]
|
||||||
|
[Timing] (Rank 41) Full-Sort : 218 [msec]
|
||||||
|
[Timing] (Rank 41) Exchange : 569 [msec]
|
||||||
|
[Timing] (Rank 41) Min-Max : 206 [msec]
|
||||||
|
[Timing] (Rank 41) Elbow-Sort: 240 [msec]
|
||||||
|
[Timing] (Rank 35) Total : 1447 [msec]
|
||||||
|
[Timing] (Rank 35) Full-Sort : 217 [msec]
|
||||||
|
[Timing] (Rank 35) Exchange : 549 [msec]
|
||||||
|
[Timing] (Rank 35) Min-Max : 238 [msec]
|
||||||
|
[Timing] (Rank 35) Elbow-Sort: 242 [msec]
|
||||||
|
[Timing] (Rank 38) Total : 1444 [msec]
|
||||||
|
[Timing] (Rank 38) Full-Sort : 219 [msec]
|
||||||
|
[Timing] (Rank 38) Exchange : 469 [msec]
|
||||||
|
[Timing] (Rank 38) Min-Max : 293 [msec]
|
||||||
|
[Timing] (Rank 38) Elbow-Sort: 234 [msec]
|
||||||
|
[Timing] (Rank 33) Total : 1446 [msec]
|
||||||
|
[Timing] (Rank 33) Full-Sort : 207 [msec]
|
||||||
|
[Timing] (Rank 33) Exchange : 618 [msec]
|
||||||
|
[Timing] (Rank 33) Min-Max : 200 [msec]
|
||||||
|
[Timing] (Rank 33) Elbow-Sort: 242 [msec]
|
||||||
|
[Timing] (Rank 47) Total : 1445 [msec]
|
||||||
|
[Timing] (Rank 47) Full-Sort : 207 [msec]
|
||||||
|
[Timing] (Rank 47) Exchange : 613 [msec]
|
||||||
|
[Timing] (Rank 47) Min-Max : 214 [msec]
|
||||||
|
[Timing] (Rank 47) Elbow-Sort: 236 [msec]
|
||||||
|
[Timing] (Rank 34) Total : 1447 [msec]
|
||||||
|
[Timing] (Rank 34) Full-Sort : 217 [msec]
|
||||||
|
[Timing] (Rank 34) Exchange : 610 [msec]
|
||||||
|
[Timing] (Rank 34) Min-Max : 203 [msec]
|
||||||
|
[Timing] (Rank 34) Elbow-Sort: 241 [msec]
|
||||||
|
[Timing] (Rank 37) Total : 1443 [msec]
|
||||||
|
[Timing] (Rank 37) Full-Sort : 211 [msec]
|
||||||
|
[Timing] (Rank 37) Exchange : 571 [msec]
|
||||||
|
[Timing] (Rank 37) Min-Max : 228 [msec]
|
||||||
|
[Timing] (Rank 37) Elbow-Sort: 238 [msec]
|
||||||
|
[Timing] (Rank 31) Total : 1458 [msec]
|
||||||
|
[Timing] (Rank 31) Full-Sort : 192 [msec]
|
||||||
|
[Timing] (Rank 31) Exchange : 749 [msec]
|
||||||
|
[Timing] (Rank 31) Min-Max : 144 [msec]
|
||||||
|
[Timing] (Rank 31) Elbow-Sort: 237 [msec]
|
||||||
|
[Timing] (Rank 21) Total : 1447 [msec]
|
||||||
|
[Timing] (Rank 21) Full-Sort : 182 [msec]
|
||||||
|
[Timing] (Rank 21) Exchange : 709 [msec]
|
||||||
|
[Timing] (Rank 21) Min-Max : 150 [msec]
|
||||||
|
[Timing] (Rank 21) Elbow-Sort: 244 [msec]
|
||||||
|
[Timing] (Rank 20) Total : 1445 [msec]
|
||||||
|
[Timing] (Rank 20) Full-Sort : 197 [msec]
|
||||||
|
[Timing] (Rank 20) Exchange : 703 [msec]
|
||||||
|
[Timing] (Rank 20) Min-Max : 145 [msec]
|
||||||
|
[Timing] (Rank 20) Elbow-Sort: 243 [msec]
|
||||||
|
[Timing] (Rank 17) Total : 1450 [msec]
|
||||||
|
[Timing] (Rank 17) Full-Sort : 188 [msec]
|
||||||
|
[Timing] (Rank 17) Exchange : 607 [msec]
|
||||||
|
[Timing] (Rank 17) Min-Max : 203 [msec]
|
||||||
|
[Timing] (Rank 17) Elbow-Sort: 245 [msec]
|
||||||
|
[Timing] (Rank 19) Total : 1445 [msec]
|
||||||
|
[Timing] (Rank 19) Full-Sort : 190 [msec]
|
||||||
|
[Timing] (Rank 19) Exchange : 562 [msec]
|
||||||
|
[Timing] (Rank 19) Min-Max : 215 [msec]
|
||||||
|
[Timing] (Rank 19) Elbow-Sort: 250 [msec]
|
||||||
|
[Timing] (Rank 23) Total : 1438 [msec]
|
||||||
|
[Timing] (Rank 23) Full-Sort : 188 [msec]
|
||||||
|
[Timing] (Rank 23) Exchange : 650 [msec]
|
||||||
|
[Timing] (Rank 23) Min-Max : 173 [msec]
|
||||||
|
[Timing] (Rank 23) Elbow-Sort: 245 [msec]
|
||||||
|
[Timing] (Rank 28) Total : 1453 [msec]
|
||||||
|
[Timing] (Rank 28) Full-Sort : 201 [msec]
|
||||||
|
[Timing] (Rank 28) Exchange : 572 [msec]
|
||||||
|
[Timing] (Rank 28) Min-Max : 219 [msec]
|
||||||
|
[Timing] (Rank 28) Elbow-Sort: 239 [msec]
|
||||||
|
[Timing] (Rank 18) Total : 1444 [msec]
|
||||||
|
[Timing] (Rank 18) Full-Sort : 197 [msec]
|
||||||
|
[Timing] (Rank 18) Exchange : 589 [msec]
|
||||||
|
[Timing] (Rank 18) Min-Max : 192 [msec]
|
||||||
|
[Timing] (Rank 18) Elbow-Sort: 244 [msec]
|
||||||
|
[Timing] (Rank 22) Total : 1439 [msec]
|
||||||
|
[Timing] (Rank 22) Full-Sort : 197 [msec]
|
||||||
|
[Timing] (Rank 22) Exchange : 637 [msec]
|
||||||
|
[Timing] (Rank 22) Min-Max : 176 [msec]
|
||||||
|
[Timing] (Rank 22) Elbow-Sort: 240 [msec]
|
||||||
|
[Timing] (Rank 26) Total : 1425 [msec]
|
||||||
|
[Timing] (Rank 26) Full-Sort : 201 [msec]
|
||||||
|
[Timing] (Rank 26) Exchange : 593 [msec]
|
||||||
|
[Timing] (Rank 26) Min-Max : 190 [msec]
|
||||||
|
[Timing] (Rank 26) Elbow-Sort: 241 [msec]
|
||||||
|
[Timing] (Rank 24) Total : 1431 [msec]
|
||||||
|
[Timing] (Rank 24) Full-Sort : 201 [msec]
|
||||||
|
[Timing] (Rank 24) Exchange : 573 [msec]
|
||||||
|
[Timing] (Rank 24) Min-Max : 203 [msec]
|
||||||
|
[Timing] (Rank 24) Elbow-Sort: 245 [msec]
|
||||||
|
[Timing] (Rank 27) Total : 1424 [msec]
|
||||||
|
[Timing] (Rank 27) Full-Sort : 192 [msec]
|
||||||
|
[Timing] (Rank 27) Exchange : 588 [msec]
|
||||||
|
[Timing] (Rank 27) Min-Max : 194 [msec]
|
||||||
|
[Timing] (Rank 27) Elbow-Sort: 244 [msec]
|
||||||
|
[Timing] (Rank 25) Total : 1427 [msec]
|
||||||
|
[Timing] (Rank 25) Full-Sort : 191 [msec]
|
||||||
|
[Timing] (Rank 25) Exchange : 505 [msec]
|
||||||
|
[Timing] (Rank 25) Min-Max : 239 [msec]
|
||||||
|
[Timing] (Rank 25) Elbow-Sort: 241 [msec]
|
||||||
|
[Timing] (Rank 29) Total : 1454 [msec]
|
||||||
|
[Timing] (Rank 29) Full-Sort : 192 [msec]
|
||||||
|
[Timing] (Rank 29) Exchange : 658 [msec]
|
||||||
|
[Timing] (Rank 29) Min-Max : 184 [msec]
|
||||||
|
[Timing] (Rank 29) Elbow-Sort: 240 [msec]
|
||||||
|
[Timing] (Rank 16) Total : 1450 [msec]
|
||||||
|
[Timing] (Rank 16) Full-Sort : 196 [msec]
|
||||||
|
[Timing] (Rank 16) Exchange : 693 [msec]
|
||||||
|
[Timing] (Rank 16) Min-Max : 156 [msec]
|
||||||
|
[Timing] (Rank 16) Elbow-Sort: 245 [msec]
|
||||||
|
[Timing] (Rank 56) Total : 1427 [msec]
|
||||||
|
[Timing] (Rank 56) Full-Sort : 218 [msec]
|
||||||
|
[Timing] (Rank 56) Exchange : 539 [msec]
|
||||||
|
[Timing] (Rank 56) Min-Max : 222 [msec]
|
||||||
|
[Timing] (Rank 56) Elbow-Sort: 242 [msec]
|
||||||
|
[Timing] (Rank 54) Total : 1439 [msec]
|
||||||
|
[Timing] (Rank 54) Full-Sort : 219 [msec]
|
||||||
|
[Timing] (Rank 54) Exchange : 529 [msec]
|
||||||
|
[Timing] (Rank 54) Min-Max : 253 [msec]
|
||||||
|
[Timing] (Rank 54) Elbow-Sort: 232 [msec]
|
||||||
|
[Timing] (Rank 63) Total : 1446 [msec]
|
||||||
|
[Timing] (Rank 63) Full-Sort : 207 [msec]
|
||||||
|
[Timing] (Rank 63) Exchange : 704 [msec]
|
||||||
|
[Timing] (Rank 63) Min-Max : 158 [msec]
|
||||||
|
[Timing] (Rank 63) Elbow-Sort: 242 [msec]
|
||||||
|
[Timing] (Rank 60) Total : 1445 [msec]
|
||||||
|
[Timing] (Rank 60) Full-Sort : 216 [msec]
|
||||||
|
[Timing] (Rank 60) Exchange : 523 [msec]
|
||||||
|
[Timing] (Rank 60) Min-Max : 250 [msec]
|
||||||
|
[Timing] (Rank 60) Elbow-Sort: 242 [msec]
|
||||||
|
[Timing] (Rank 53) Total : 1434 [msec]
|
||||||
|
[Timing] (Rank 53) Full-Sort : 217 [msec]
|
||||||
|
[Timing] (Rank 53) Exchange : 610 [msec]
|
||||||
|
[Timing] (Rank 53) Min-Max : 203 [msec]
|
||||||
|
[Timing] (Rank 53) Elbow-Sort: 238 [msec]
|
||||||
|
[Timing] (Rank 48) Total : 1436 [msec]
|
||||||
|
[Timing] (Rank 48) Full-Sort : 210 [msec]
|
||||||
|
[Timing] (Rank 48) Exchange : 623 [msec]
|
||||||
|
[Timing] (Rank 48) Min-Max : 197 [msec]
|
||||||
|
[Timing] (Rank 48) Elbow-Sort: 238 [msec]
|
||||||
|
[Timing] (Rank 55) Total : 1438 [msec]
|
||||||
|
[Timing] (Rank 55) Full-Sort : 216 [msec]
|
||||||
|
[Timing] (Rank 55) Exchange : 540 [msec]
|
||||||
|
[Timing] (Rank 55) Min-Max : 247 [msec]
|
||||||
|
[Timing] (Rank 55) Elbow-Sort: 234 [msec]
|
||||||
|
[Timing] (Rank 52) Total : 1434 [msec]
|
||||||
|
[Timing] (Rank 52) Full-Sort : 218 [msec]
|
||||||
|
[Timing] (Rank 52) Exchange : 570 [msec]
|
||||||
|
[Timing] (Rank 52) Min-Max : 223 [msec]
|
||||||
|
[Timing] (Rank 52) Elbow-Sort: 235 [msec]
|
||||||
|
[Timing] (Rank 49) Total : 1435 [msec]
|
||||||
|
[Timing] (Rank 49) Full-Sort : 212 [msec]
|
||||||
|
[Timing] (Rank 49) Exchange : 512 [msec]
|
||||||
|
[Timing] (Rank 49) Min-Max : 248 [msec]
|
||||||
|
[Timing] (Rank 49) Elbow-Sort: 240 [msec]
|
||||||
|
[Timing] (Rank 51) Total : 1427 [msec]
|
||||||
|
[Timing] (Rank 51) Full-Sort : 213 [msec]
|
||||||
|
[Timing] (Rank 51) Exchange : 439 [msec]
|
||||||
|
[Timing] (Rank 51) Min-Max : 289 [msec]
|
||||||
|
[Timing] (Rank 51) Elbow-Sort: 237 [msec]
|
||||||
|
[Timing] (Rank 59) Total : 1418 [msec]
|
||||||
|
[Timing] (Rank 59) Full-Sort : 212 [msec]
|
||||||
|
[Timing] (Rank 59) Exchange : 570 [msec]
|
||||||
|
[Timing] (Rank 59) Min-Max : 211 [msec]
|
||||||
|
[Timing] (Rank 59) Elbow-Sort: 240 [msec]
|
||||||
|
[Timing] (Rank 61) Total : 1446 [msec]
|
||||||
|
[Timing] (Rank 61) Full-Sort : 209 [msec]
|
||||||
|
[Timing] (Rank 61) Exchange : 616 [msec]
|
||||||
|
[Timing] (Rank 61) Min-Max : 211 [msec]
|
||||||
|
[Timing] (Rank 61) Elbow-Sort: 242 [msec]
|
||||||
|
[Timing] (Rank 50) Total : 1427 [msec]
|
||||||
|
[Timing] (Rank 50) Full-Sort : 216 [msec]
|
||||||
|
[Timing] (Rank 50) Exchange : 504 [msec]
|
||||||
|
[Timing] (Rank 50) Min-Max : 254 [msec]
|
||||||
|
[Timing] (Rank 50) Elbow-Sort: 237 [msec]
|
||||||
|
[Timing] (Rank 58) Total : 1420 [msec]
|
||||||
|
[Timing] (Rank 58) Full-Sort : 219 [msec]
|
||||||
|
[Timing] (Rank 58) Exchange : 604 [msec]
|
||||||
|
[Timing] (Rank 58) Min-Max : 194 [msec]
|
||||||
|
[Timing] (Rank 58) Elbow-Sort: 239 [msec]
|
||||||
|
[Timing] (Rank 62) Total : 1447 [msec]
|
||||||
|
[Timing] (Rank 62) Full-Sort : 216 [msec]
|
||||||
|
[Timing] (Rank 62) Exchange : 604 [msec]
|
||||||
|
[Timing] (Rank 62) Min-Max : 209 [msec]
|
||||||
|
[Timing] (Rank 62) Elbow-Sort: 241 [msec]
|
||||||
|
[Timing] (Rank 5) Total : 1447 [msec]
|
||||||
|
[Timing] (Rank 5) Full-Sort : 191 [msec]
|
||||||
|
[Timing] (Rank 5) Exchange : 747 [msec]
|
||||||
|
[Timing] (Rank 5) Min-Max : 117 [msec]
|
||||||
|
[Timing] (Rank 5) Elbow-Sort: 234 [msec]
|
||||||
|
[Timing] (Rank 6) Total : 1447 [msec]
|
||||||
|
[Timing] (Rank 6) Full-Sort : 200 [msec]
|
||||||
|
[Timing] (Rank 6) Exchange : 633 [msec]
|
||||||
|
[Timing] (Rank 6) Min-Max : 171 [msec]
|
||||||
|
[Timing] (Rank 6) Elbow-Sort: 232 [msec]
|
||||||
|
[Timing] (Rank 1) Total : 1452 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 193 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 755 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 109 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 239 [msec]
|
||||||
|
[Timing] (Rank 8) Total : 1434 [msec]
|
||||||
|
[Timing] (Rank 8) Full-Sort : 197 [msec]
|
||||||
|
[Timing] (Rank 8) Exchange : 713 [msec]
|
||||||
|
[Timing] (Rank 8) Min-Max : 131 [msec]
|
||||||
|
[Timing] (Rank 8) Elbow-Sort: 235 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 1452 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 191 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 681 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 153 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 237 [msec]
|
||||||
|
[Timing] (Rank 4) Total : 1446 [msec]
|
||||||
|
[Timing] (Rank 4) Full-Sort : 201 [msec]
|
||||||
|
[Timing] (Rank 4) Exchange : 713 [msec]
|
||||||
|
[Timing] (Rank 4) Min-Max : 135 [msec]
|
||||||
|
[Timing] (Rank 4) Elbow-Sort: 236 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 1452 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 205 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 840 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 77 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 237 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 12) Total : 1446 [msec]
|
||||||
|
[Timing] (Rank 12) Full-Sort : 201 [msec]
|
||||||
|
[Timing] (Rank 12) Exchange : 600 [msec]
|
||||||
|
[Timing] (Rank 12) Min-Max : 186 [msec]
|
||||||
|
[Timing] (Rank 12) Elbow-Sort: 235 [msec]
|
||||||
|
[Timing] (Rank 15) Total : 1447 [msec]
|
||||||
|
[Timing] (Rank 15) Full-Sort : 194 [msec]
|
||||||
|
[Timing] (Rank 15) Exchange : 706 [msec]
|
||||||
|
[Timing] (Rank 15) Min-Max : 138 [msec]
|
||||||
|
[Timing] (Rank 15) Elbow-Sort: 233 [msec]
|
||||||
|
[Timing] (Rank 11) Total : 1429 [msec]
|
||||||
|
[Timing] (Rank 11) Full-Sort : 191 [msec]
|
||||||
|
[Timing] (Rank 11) Exchange : 689 [msec]
|
||||||
|
[Timing] (Rank 11) Min-Max : 132 [msec]
|
||||||
|
[Timing] (Rank 11) Elbow-Sort: 235 [msec]
|
||||||
|
[Timing] (Rank 14) Total : 1445 [msec]
|
||||||
|
[Timing] (Rank 14) Full-Sort : 201 [msec]
|
||||||
|
[Timing] (Rank 14) Exchange : 630 [msec]
|
||||||
|
[Timing] (Rank 14) Min-Max : 173 [msec]
|
||||||
|
[Timing] (Rank 14) Elbow-Sort: 229 [msec]
|
||||||
|
[Timing] (Rank 9) Total : 1433 [msec]
|
||||||
|
[Timing] (Rank 9) Full-Sort : 194 [msec]
|
||||||
|
[Timing] (Rank 9) Exchange : 640 [msec]
|
||||||
|
[Timing] (Rank 9) Min-Max : 158 [msec]
|
||||||
|
[Timing] (Rank 9) Elbow-Sort: 234 [msec]
|
||||||
|
[Timing] (Rank 13) Total : 1445 [msec]
|
||||||
|
[Timing] (Rank 13) Full-Sort : 192 [msec]
|
||||||
|
[Timing] (Rank 13) Exchange : 644 [msec]
|
||||||
|
[Timing] (Rank 13) Min-Max : 167 [msec]
|
||||||
|
[Timing] (Rank 13) Elbow-Sort: 232 [msec]
|
||||||
|
[Timing] (Rank 10) Total : 1429 [msec]
|
||||||
|
[Timing] (Rank 10) Full-Sort : 200 [msec]
|
||||||
|
[Timing] (Rank 10) Exchange : 709 [msec]
|
||||||
|
[Timing] (Rank 10) Min-Max : 120 [msec]
|
||||||
|
[Timing] (Rank 10) Elbow-Sort: 235 [msec]
|
||||||
|
[Timing] (Rank 7) Total : 1446 [msec]
|
||||||
|
[Timing] (Rank 7) Full-Sort : 191 [msec]
|
||||||
|
[Timing] (Rank 7) Exchange : 685 [msec]
|
||||||
|
[Timing] (Rank 7) Min-Max : 152 [msec]
|
||||||
|
[Timing] (Rank 7) Elbow-Sort: 233 [msec]
|
||||||
@@ -0,0 +1,342 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 39) Total : 5990 [msec]
|
||||||
|
[Timing] (Rank 39) Full-Sort : 942 [msec]
|
||||||
|
[Timing] (Rank 39) Exchange : 2276 [msec]
|
||||||
|
[Timing] (Rank 39) Min-Max : 1014 [msec]
|
||||||
|
[Timing] (Rank 39) Elbow-Sort: 959 [msec]
|
||||||
|
[Timing] (Rank 11) Total : 5891 [msec]
|
||||||
|
[Timing] (Rank 11) Full-Sort : 841 [msec]
|
||||||
|
[Timing] (Rank 11) Exchange : 2899 [msec]
|
||||||
|
[Timing] (Rank 11) Min-Max : 550 [msec]
|
||||||
|
[Timing] (Rank 11) Elbow-Sort: 943 [msec]
|
||||||
|
[Timing] (Rank 49) Total : 5988 [msec]
|
||||||
|
[Timing] (Rank 49) Full-Sort : 906 [msec]
|
||||||
|
[Timing] (Rank 49) Exchange : 2006 [msec]
|
||||||
|
[Timing] (Rank 49) Min-Max : 1144 [msec]
|
||||||
|
[Timing] (Rank 49) Elbow-Sort: 972 [msec]
|
||||||
|
[Timing] (Rank 25) Total : 5936 [msec]
|
||||||
|
[Timing] (Rank 25) Full-Sort : 859 [msec]
|
||||||
|
[Timing] (Rank 25) Exchange : 2143 [msec]
|
||||||
|
[Timing] (Rank 25) Min-Max : 969 [msec]
|
||||||
|
[Timing] (Rank 25) Elbow-Sort: 980 [msec]
|
||||||
|
[Timing] (Rank 40) Total : 5925 [msec]
|
||||||
|
[Timing] (Rank 40) Full-Sort : 961 [msec]
|
||||||
|
[Timing] (Rank 40) Exchange : 2522 [msec]
|
||||||
|
[Timing] (Rank 40) Min-Max : 862 [msec]
|
||||||
|
[Timing] (Rank 40) Elbow-Sort: 979 [msec]
|
||||||
|
[Timing] (Rank 41) Total : 5924 [msec]
|
||||||
|
[Timing] (Rank 41) Full-Sort : 942 [msec]
|
||||||
|
[Timing] (Rank 41) Exchange : 2319 [msec]
|
||||||
|
[Timing] (Rank 41) Min-Max : 942 [msec]
|
||||||
|
[Timing] (Rank 41) Elbow-Sort: 965 [msec]
|
||||||
|
[Timing] (Rank 32) Total : 6021 [msec]
|
||||||
|
[Timing] (Rank 32) Full-Sort : 871 [msec]
|
||||||
|
[Timing] (Rank 32) Exchange : 2811 [msec]
|
||||||
|
[Timing] (Rank 32) Min-Max : 681 [msec]
|
||||||
|
[Timing] (Rank 32) Elbow-Sort: 1041 [msec]
|
||||||
|
[Timing] (Rank 36) Total : 5994 [msec]
|
||||||
|
[Timing] (Rank 36) Full-Sort : 961 [msec]
|
||||||
|
[Timing] (Rank 36) Exchange : 2346 [msec]
|
||||||
|
[Timing] (Rank 36) Min-Max : 962 [msec]
|
||||||
|
[Timing] (Rank 36) Elbow-Sort: 974 [msec]
|
||||||
|
[Timing] (Rank 35) Total : 5996 [msec]
|
||||||
|
[Timing] (Rank 35) Full-Sort : 917 [msec]
|
||||||
|
[Timing] (Rank 35) Exchange : 2097 [msec]
|
||||||
|
[Timing] (Rank 35) Min-Max : 1077 [msec]
|
||||||
|
[Timing] (Rank 35) Elbow-Sort: 975 [msec]
|
||||||
|
[Timing] (Rank 34) Total : 5995 [msec]
|
||||||
|
[Timing] (Rank 34) Full-Sort : 944 [msec]
|
||||||
|
[Timing] (Rank 34) Exchange : 2408 [msec]
|
||||||
|
[Timing] (Rank 34) Min-Max : 892 [msec]
|
||||||
|
[Timing] (Rank 34) Elbow-Sort: 969 [msec]
|
||||||
|
[Timing] (Rank 38) Total : 5986 [msec]
|
||||||
|
[Timing] (Rank 38) Full-Sort : 958 [msec]
|
||||||
|
[Timing] (Rank 38) Exchange : 1996 [msec]
|
||||||
|
[Timing] (Rank 38) Min-Max : 1169 [msec]
|
||||||
|
[Timing] (Rank 38) Elbow-Sort: 952 [msec]
|
||||||
|
[Timing] (Rank 44) Total : 5923 [msec]
|
||||||
|
[Timing] (Rank 44) Full-Sort : 942 [msec]
|
||||||
|
[Timing] (Rank 44) Exchange : 2064 [msec]
|
||||||
|
[Timing] (Rank 44) Min-Max : 1109 [msec]
|
||||||
|
[Timing] (Rank 44) Elbow-Sort: 969 [msec]
|
||||||
|
[Timing] (Rank 43) Total : 5932 [msec]
|
||||||
|
[Timing] (Rank 43) Full-Sort : 947 [msec]
|
||||||
|
[Timing] (Rank 43) Exchange : 2462 [msec]
|
||||||
|
[Timing] (Rank 43) Min-Max : 839 [msec]
|
||||||
|
[Timing] (Rank 43) Elbow-Sort: 979 [msec]
|
||||||
|
[Timing] (Rank 42) Total : 5931 [msec]
|
||||||
|
[Timing] (Rank 42) Full-Sort : 967 [msec]
|
||||||
|
[Timing] (Rank 42) Exchange : 2643 [msec]
|
||||||
|
[Timing] (Rank 42) Min-Max : 775 [msec]
|
||||||
|
[Timing] (Rank 42) Elbow-Sort: 960 [msec]
|
||||||
|
[Timing] (Rank 46) Total : 5941 [msec]
|
||||||
|
[Timing] (Rank 46) Full-Sort : 946 [msec]
|
||||||
|
[Timing] (Rank 46) Exchange : 2205 [msec]
|
||||||
|
[Timing] (Rank 46) Min-Max : 1030 [msec]
|
||||||
|
[Timing] (Rank 46) Elbow-Sort: 969 [msec]
|
||||||
|
[Timing] (Rank 45) Total : 5932 [msec]
|
||||||
|
[Timing] (Rank 45) Full-Sort : 893 [msec]
|
||||||
|
[Timing] (Rank 45) Exchange : 2293 [msec]
|
||||||
|
[Timing] (Rank 45) Min-Max : 994 [msec]
|
||||||
|
[Timing] (Rank 45) Elbow-Sort: 985 [msec]
|
||||||
|
[Timing] (Rank 37) Total : 5987 [msec]
|
||||||
|
[Timing] (Rank 37) Full-Sort : 943 [msec]
|
||||||
|
[Timing] (Rank 37) Exchange : 2319 [msec]
|
||||||
|
[Timing] (Rank 37) Min-Max : 972 [msec]
|
||||||
|
[Timing] (Rank 37) Elbow-Sort: 963 [msec]
|
||||||
|
[Timing] (Rank 33) Total : 5995 [msec]
|
||||||
|
[Timing] (Rank 33) Full-Sort : 903 [msec]
|
||||||
|
[Timing] (Rank 33) Exchange : 2398 [msec]
|
||||||
|
[Timing] (Rank 33) Min-Max : 893 [msec]
|
||||||
|
[Timing] (Rank 33) Elbow-Sort: 1006 [msec]
|
||||||
|
[Timing] (Rank 47) Total : 5941 [msec]
|
||||||
|
[Timing] (Rank 47) Full-Sort : 916 [msec]
|
||||||
|
[Timing] (Rank 47) Exchange : 2586 [msec]
|
||||||
|
[Timing] (Rank 47) Min-Max : 801 [msec]
|
||||||
|
[Timing] (Rank 47) Elbow-Sort: 976 [msec]
|
||||||
|
[Timing] (Rank 15) Total : 5942 [msec]
|
||||||
|
[Timing] (Rank 15) Full-Sort : 857 [msec]
|
||||||
|
[Timing] (Rank 15) Exchange : 2824 [msec]
|
||||||
|
[Timing] (Rank 15) Min-Max : 609 [msec]
|
||||||
|
[Timing] (Rank 15) Elbow-Sort: 936 [msec]
|
||||||
|
[Timing] (Rank 4) Total : 5895 [msec]
|
||||||
|
[Timing] (Rank 4) Full-Sort : 881 [msec]
|
||||||
|
[Timing] (Rank 4) Exchange : 2885 [msec]
|
||||||
|
[Timing] (Rank 4) Min-Max : 565 [msec]
|
||||||
|
[Timing] (Rank 4) Elbow-Sort: 934 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 5935 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 850 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 2796 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 621 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 946 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 5962 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 898 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 3540 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 239 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 985 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 2) Total : 5935 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 884 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 3175 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 413 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 956 [msec]
|
||||||
|
[Timing] (Rank 1) Total : 5946 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 845 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 3071 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 452 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 967 [msec]
|
||||||
|
[Timing] (Rank 7) Total : 5922 [msec]
|
||||||
|
[Timing] (Rank 7) Full-Sort : 846 [msec]
|
||||||
|
[Timing] (Rank 7) Exchange : 2653 [msec]
|
||||||
|
[Timing] (Rank 7) Min-Max : 707 [msec]
|
||||||
|
[Timing] (Rank 7) Elbow-Sort: 934 [msec]
|
||||||
|
[Timing] (Rank 5) Total : 5898 [msec]
|
||||||
|
[Timing] (Rank 5) Full-Sort : 850 [msec]
|
||||||
|
[Timing] (Rank 5) Exchange : 2817 [msec]
|
||||||
|
[Timing] (Rank 5) Min-Max : 563 [msec]
|
||||||
|
[Timing] (Rank 5) Elbow-Sort: 949 [msec]
|
||||||
|
[Timing] (Rank 10) Total : 5886 [msec]
|
||||||
|
[Timing] (Rank 10) Full-Sort : 885 [msec]
|
||||||
|
[Timing] (Rank 10) Exchange : 2907 [msec]
|
||||||
|
[Timing] (Rank 10) Min-Max : 510 [msec]
|
||||||
|
[Timing] (Rank 10) Elbow-Sort: 939 [msec]
|
||||||
|
[Timing] (Rank 13) Total : 5943 [msec]
|
||||||
|
[Timing] (Rank 13) Full-Sort : 842 [msec]
|
||||||
|
[Timing] (Rank 13) Exchange : 2558 [msec]
|
||||||
|
[Timing] (Rank 13) Min-Max : 718 [msec]
|
||||||
|
[Timing] (Rank 13) Elbow-Sort: 950 [msec]
|
||||||
|
[Timing] (Rank 14) Total : 5940 [msec]
|
||||||
|
[Timing] (Rank 14) Full-Sort : 882 [msec]
|
||||||
|
[Timing] (Rank 14) Exchange : 2581 [msec]
|
||||||
|
[Timing] (Rank 14) Min-Max : 719 [msec]
|
||||||
|
[Timing] (Rank 14) Elbow-Sort: 930 [msec]
|
||||||
|
[Timing] (Rank 12) Total : 5944 [msec]
|
||||||
|
[Timing] (Rank 12) Full-Sort : 889 [msec]
|
||||||
|
[Timing] (Rank 12) Exchange : 2480 [msec]
|
||||||
|
[Timing] (Rank 12) Min-Max : 752 [msec]
|
||||||
|
[Timing] (Rank 12) Elbow-Sort: 941 [msec]
|
||||||
|
[Timing] (Rank 8) Total : 5906 [msec]
|
||||||
|
[Timing] (Rank 8) Full-Sort : 878 [msec]
|
||||||
|
[Timing] (Rank 8) Exchange : 2922 [msec]
|
||||||
|
[Timing] (Rank 8) Min-Max : 560 [msec]
|
||||||
|
[Timing] (Rank 8) Elbow-Sort: 933 [msec]
|
||||||
|
[Timing] (Rank 9) Total : 5910 [msec]
|
||||||
|
[Timing] (Rank 9) Full-Sort : 851 [msec]
|
||||||
|
[Timing] (Rank 9) Exchange : 2632 [msec]
|
||||||
|
[Timing] (Rank 9) Min-Max : 671 [msec]
|
||||||
|
[Timing] (Rank 9) Elbow-Sort: 940 [msec]
|
||||||
|
[Timing] (Rank 6) Total : 5920 [msec]
|
||||||
|
[Timing] (Rank 6) Full-Sort : 891 [msec]
|
||||||
|
[Timing] (Rank 6) Exchange : 2561 [msec]
|
||||||
|
[Timing] (Rank 6) Min-Max : 715 [msec]
|
||||||
|
[Timing] (Rank 6) Elbow-Sort: 935 [msec]
|
||||||
|
[Timing] (Rank 24) Total : 5928 [msec]
|
||||||
|
[Timing] (Rank 24) Full-Sort : 885 [msec]
|
||||||
|
[Timing] (Rank 24) Exchange : 2447 [msec]
|
||||||
|
[Timing] (Rank 24) Min-Max : 799 [msec]
|
||||||
|
[Timing] (Rank 24) Elbow-Sort: 983 [msec]
|
||||||
|
[Timing] (Rank 29) Total : 5880 [msec]
|
||||||
|
[Timing] (Rank 29) Full-Sort : 854 [msec]
|
||||||
|
[Timing] (Rank 29) Exchange : 2631 [msec]
|
||||||
|
[Timing] (Rank 29) Min-Max : 721 [msec]
|
||||||
|
[Timing] (Rank 29) Elbow-Sort: 980 [msec]
|
||||||
|
[Timing] (Rank 17) Total : 6038 [msec]
|
||||||
|
[Timing] (Rank 17) Full-Sort : 841 [msec]
|
||||||
|
[Timing] (Rank 17) Exchange : 2351 [msec]
|
||||||
|
[Timing] (Rank 17) Min-Max : 950 [msec]
|
||||||
|
[Timing] (Rank 17) Elbow-Sort: 992 [msec]
|
||||||
|
[Timing] (Rank 23) Total : 5988 [msec]
|
||||||
|
[Timing] (Rank 23) Full-Sort : 849 [msec]
|
||||||
|
[Timing] (Rank 23) Exchange : 2672 [msec]
|
||||||
|
[Timing] (Rank 23) Min-Max : 780 [msec]
|
||||||
|
[Timing] (Rank 23) Elbow-Sort: 977 [msec]
|
||||||
|
[Timing] (Rank 22) Total : 5996 [msec]
|
||||||
|
[Timing] (Rank 22) Full-Sort : 850 [msec]
|
||||||
|
[Timing] (Rank 22) Exchange : 2731 [msec]
|
||||||
|
[Timing] (Rank 22) Min-Max : 699 [msec]
|
||||||
|
[Timing] (Rank 22) Elbow-Sort: 980 [msec]
|
||||||
|
[Timing] (Rank 52) Total : 5898 [msec]
|
||||||
|
[Timing] (Rank 52) Full-Sort : 970 [msec]
|
||||||
|
[Timing] (Rank 52) Exchange : 2482 [msec]
|
||||||
|
[Timing] (Rank 52) Min-Max : 790 [msec]
|
||||||
|
[Timing] (Rank 52) Elbow-Sort: 987 [msec]
|
||||||
|
[Timing] (Rank 62) Total : 5970 [msec]
|
||||||
|
[Timing] (Rank 62) Full-Sort : 958 [msec]
|
||||||
|
[Timing] (Rank 62) Exchange : 2386 [msec]
|
||||||
|
[Timing] (Rank 62) Min-Max : 943 [msec]
|
||||||
|
[Timing] (Rank 62) Elbow-Sort: 970 [msec]
|
||||||
|
[Timing] (Rank 53) Total : 5901 [msec]
|
||||||
|
[Timing] (Rank 53) Full-Sort : 924 [msec]
|
||||||
|
[Timing] (Rank 53) Exchange : 2579 [msec]
|
||||||
|
[Timing] (Rank 53) Min-Max : 759 [msec]
|
||||||
|
[Timing] (Rank 53) Elbow-Sort: 991 [msec]
|
||||||
|
[Timing] (Rank 61) Total : 5947 [msec]
|
||||||
|
[Timing] (Rank 61) Full-Sort : 908 [msec]
|
||||||
|
[Timing] (Rank 61) Exchange : 2487 [msec]
|
||||||
|
[Timing] (Rank 61) Min-Max : 915 [msec]
|
||||||
|
[Timing] (Rank 61) Elbow-Sort: 969 [msec]
|
||||||
|
[Timing] (Rank 54) Total : 5909 [msec]
|
||||||
|
[Timing] (Rank 54) Full-Sort : 966 [msec]
|
||||||
|
[Timing] (Rank 54) Exchange : 2132 [msec]
|
||||||
|
[Timing] (Rank 54) Min-Max : 1015 [msec]
|
||||||
|
[Timing] (Rank 54) Elbow-Sort: 977 [msec]
|
||||||
|
[Timing] (Rank 60) Total : 5940 [msec]
|
||||||
|
[Timing] (Rank 60) Full-Sort : 955 [msec]
|
||||||
|
[Timing] (Rank 60) Exchange : 2266 [msec]
|
||||||
|
[Timing] (Rank 60) Min-Max : 1009 [msec]
|
||||||
|
[Timing] (Rank 60) Elbow-Sort: 956 [msec]
|
||||||
|
[Timing] (Rank 19) Total : 6022 [msec]
|
||||||
|
[Timing] (Rank 19) Full-Sort : 822 [msec]
|
||||||
|
[Timing] (Rank 19) Exchange : 2358 [msec]
|
||||||
|
[Timing] (Rank 19) Min-Max : 959 [msec]
|
||||||
|
[Timing] (Rank 19) Elbow-Sort: 992 [msec]
|
||||||
|
[Timing] (Rank 58) Total : 5970 [msec]
|
||||||
|
[Timing] (Rank 58) Full-Sort : 969 [msec]
|
||||||
|
[Timing] (Rank 58) Exchange : 2391 [msec]
|
||||||
|
[Timing] (Rank 58) Min-Max : 975 [msec]
|
||||||
|
[Timing] (Rank 58) Elbow-Sort: 943 [msec]
|
||||||
|
[Timing] (Rank 28) Total : 5860 [msec]
|
||||||
|
[Timing] (Rank 28) Full-Sort : 899 [msec]
|
||||||
|
[Timing] (Rank 28) Exchange : 2280 [msec]
|
||||||
|
[Timing] (Rank 28) Min-Max : 864 [msec]
|
||||||
|
[Timing] (Rank 28) Elbow-Sort: 967 [msec]
|
||||||
|
[Timing] (Rank 16) Total : 6041 [msec]
|
||||||
|
[Timing] (Rank 16) Full-Sort : 857 [msec]
|
||||||
|
[Timing] (Rank 16) Exchange : 3009 [msec]
|
||||||
|
[Timing] (Rank 16) Min-Max : 599 [msec]
|
||||||
|
[Timing] (Rank 16) Elbow-Sort: 986 [msec]
|
||||||
|
[Timing] (Rank 20) Total : 6011 [msec]
|
||||||
|
[Timing] (Rank 20) Full-Sort : 849 [msec]
|
||||||
|
[Timing] (Rank 20) Exchange : 2995 [msec]
|
||||||
|
[Timing] (Rank 20) Min-Max : 591 [msec]
|
||||||
|
[Timing] (Rank 20) Elbow-Sort: 967 [msec]
|
||||||
|
[Timing] (Rank 56) Total : 5980 [msec]
|
||||||
|
[Timing] (Rank 56) Full-Sort : 966 [msec]
|
||||||
|
[Timing] (Rank 56) Exchange : 2250 [msec]
|
||||||
|
[Timing] (Rank 56) Min-Max : 980 [msec]
|
||||||
|
[Timing] (Rank 56) Elbow-Sort: 967 [msec]
|
||||||
|
[Timing] (Rank 51) Total : 5983 [msec]
|
||||||
|
[Timing] (Rank 51) Full-Sort : 919 [msec]
|
||||||
|
[Timing] (Rank 51) Exchange : 1918 [msec]
|
||||||
|
[Timing] (Rank 51) Min-Max : 1205 [msec]
|
||||||
|
[Timing] (Rank 51) Elbow-Sort: 958 [msec]
|
||||||
|
[Timing] (Rank 18) Total : 6016 [msec]
|
||||||
|
[Timing] (Rank 18) Full-Sort : 868 [msec]
|
||||||
|
[Timing] (Rank 18) Exchange : 2602 [msec]
|
||||||
|
[Timing] (Rank 18) Min-Max : 771 [msec]
|
||||||
|
[Timing] (Rank 18) Elbow-Sort: 968 [msec]
|
||||||
|
[Timing] (Rank 27) Total : 5921 [msec]
|
||||||
|
[Timing] (Rank 27) Full-Sort : 848 [msec]
|
||||||
|
[Timing] (Rank 27) Exchange : 2482 [msec]
|
||||||
|
[Timing] (Rank 27) Min-Max : 824 [msec]
|
||||||
|
[Timing] (Rank 27) Elbow-Sort: 973 [msec]
|
||||||
|
[Timing] (Rank 57) Total : 5987 [msec]
|
||||||
|
[Timing] (Rank 57) Full-Sort : 942 [msec]
|
||||||
|
[Timing] (Rank 57) Exchange : 2070 [msec]
|
||||||
|
[Timing] (Rank 57) Min-Max : 1089 [msec]
|
||||||
|
[Timing] (Rank 57) Elbow-Sort: 973 [msec]
|
||||||
|
[Timing] (Rank 31) Total : 5907 [msec]
|
||||||
|
[Timing] (Rank 31) Full-Sort : 852 [msec]
|
||||||
|
[Timing] (Rank 31) Exchange : 2989 [msec]
|
||||||
|
[Timing] (Rank 31) Min-Max : 530 [msec]
|
||||||
|
[Timing] (Rank 31) Elbow-Sort: 979 [msec]
|
||||||
|
[Timing] (Rank 30) Total : 5889 [msec]
|
||||||
|
[Timing] (Rank 30) Full-Sort : 884 [msec]
|
||||||
|
[Timing] (Rank 30) Exchange : 2610 [msec]
|
||||||
|
[Timing] (Rank 30) Min-Max : 712 [msec]
|
||||||
|
[Timing] (Rank 30) Elbow-Sort: 971 [msec]
|
||||||
|
[Timing] (Rank 55) Total : 5914 [msec]
|
||||||
|
[Timing] (Rank 55) Full-Sort : 958 [msec]
|
||||||
|
[Timing] (Rank 55) Exchange : 2463 [msec]
|
||||||
|
[Timing] (Rank 55) Min-Max : 825 [msec]
|
||||||
|
[Timing] (Rank 55) Elbow-Sort: 983 [msec]
|
||||||
|
[Timing] (Rank 21) Total : 6007 [msec]
|
||||||
|
[Timing] (Rank 21) Full-Sort : 835 [msec]
|
||||||
|
[Timing] (Rank 21) Exchange : 2720 [msec]
|
||||||
|
[Timing] (Rank 21) Min-Max : 743 [msec]
|
||||||
|
[Timing] (Rank 21) Elbow-Sort: 994 [msec]
|
||||||
|
[Timing] (Rank 26) Total : 5907 [msec]
|
||||||
|
[Timing] (Rank 26) Full-Sort : 886 [msec]
|
||||||
|
[Timing] (Rank 26) Exchange : 2577 [msec]
|
||||||
|
[Timing] (Rank 26) Min-Max : 745 [msec]
|
||||||
|
[Timing] (Rank 26) Elbow-Sort: 967 [msec]
|
||||||
|
[Timing] (Rank 59) Total : 5963 [msec]
|
||||||
|
[Timing] (Rank 59) Full-Sort : 958 [msec]
|
||||||
|
[Timing] (Rank 59) Exchange : 2442 [msec]
|
||||||
|
[Timing] (Rank 59) Min-Max : 912 [msec]
|
||||||
|
[Timing] (Rank 59) Elbow-Sort: 945 [msec]
|
||||||
|
[Timing] (Rank 50) Total : 5990 [msec]
|
||||||
|
[Timing] (Rank 50) Full-Sort : 962 [msec]
|
||||||
|
[Timing] (Rank 50) Exchange : 2072 [msec]
|
||||||
|
[Timing] (Rank 50) Min-Max : 1107 [msec]
|
||||||
|
[Timing] (Rank 50) Elbow-Sort: 968 [msec]
|
||||||
|
[Timing] (Rank 63) Total : 5966 [msec]
|
||||||
|
[Timing] (Rank 63) Full-Sort : 919 [msec]
|
||||||
|
[Timing] (Rank 63) Exchange : 2821 [msec]
|
||||||
|
[Timing] (Rank 63) Min-Max : 697 [msec]
|
||||||
|
[Timing] (Rank 63) Elbow-Sort: 972 [msec]
|
||||||
|
[Timing] (Rank 48) Total : 5987 [msec]
|
||||||
|
[Timing] (Rank 48) Full-Sort : 968 [msec]
|
||||||
|
[Timing] (Rank 48) Exchange : 2469 [msec]
|
||||||
|
[Timing] (Rank 48) Min-Max : 898 [msec]
|
||||||
|
[Timing] (Rank 48) Elbow-Sort: 961 [msec]
|
||||||
@@ -0,0 +1,342 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 23) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 23) Full-Sort : 3558 [msec]
|
||||||
|
[Timing] (Rank 23) Exchange : 11 [sec]
|
||||||
|
[Timing] (Rank 23) Min-Max : 2555 [msec]
|
||||||
|
[Timing] (Rank 23) Elbow-Sort: 3950 [msec]
|
||||||
|
[Timing] (Rank 5) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 5) Full-Sort : 3731 [msec]
|
||||||
|
[Timing] (Rank 5) Exchange : 11 [sec]
|
||||||
|
[Timing] (Rank 5) Min-Max : 1605 [msec]
|
||||||
|
[Timing] (Rank 5) Elbow-Sort: 3909 [msec]
|
||||||
|
[Timing] (Rank 52) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 52) Full-Sort : 4200 [msec]
|
||||||
|
[Timing] (Rank 52) Exchange : 8933 [msec]
|
||||||
|
[Timing] (Rank 52) Min-Max : 3594 [msec]
|
||||||
|
[Timing] (Rank 52) Elbow-Sort: 3915 [msec]
|
||||||
|
[Timing] (Rank 45) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 45) Full-Sort : 3978 [msec]
|
||||||
|
[Timing] (Rank 45) Exchange : 8836 [msec]
|
||||||
|
[Timing] (Rank 45) Min-Max : 3794 [msec]
|
||||||
|
[Timing] (Rank 45) Elbow-Sort: 3869 [msec]
|
||||||
|
[Timing] (Rank 27) Total : 24 [sec]
|
||||||
|
[Timing] (Rank 27) Full-Sort : 3619 [msec]
|
||||||
|
[Timing] (Rank 27) Exchange : 10 [sec]
|
||||||
|
[Timing] (Rank 27) Min-Max : 3079 [msec]
|
||||||
|
[Timing] (Rank 27) Elbow-Sort: 3923 [msec]
|
||||||
|
[Timing] (Rank 18) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 18) Full-Sort : 3556 [msec]
|
||||||
|
[Timing] (Rank 18) Exchange : 9545 [msec]
|
||||||
|
[Timing] (Rank 18) Min-Max : 3023 [msec]
|
||||||
|
[Timing] (Rank 18) Elbow-Sort: 3962 [msec]
|
||||||
|
[Timing] (Rank 16) Total : 24 [sec]
|
||||||
|
[Timing] (Rank 16) Full-Sort : 3569 [msec]
|
||||||
|
[Timing] (Rank 16) Exchange : 11 [sec]
|
||||||
|
[Timing] (Rank 16) Min-Max : 2427 [msec]
|
||||||
|
[Timing] (Rank 16) Elbow-Sort: 3926 [msec]
|
||||||
|
[Timing] (Rank 24) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 24) Full-Sort : 3727 [msec]
|
||||||
|
[Timing] (Rank 24) Exchange : 10 [sec]
|
||||||
|
[Timing] (Rank 24) Min-Max : 3038 [msec]
|
||||||
|
[Timing] (Rank 24) Elbow-Sort: 3886 [msec]
|
||||||
|
[Timing] (Rank 22) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 22) Full-Sort : 3619 [msec]
|
||||||
|
[Timing] (Rank 22) Exchange : 10 [sec]
|
||||||
|
[Timing] (Rank 22) Min-Max : 2836 [msec]
|
||||||
|
[Timing] (Rank 22) Elbow-Sort: 3916 [msec]
|
||||||
|
[Timing] (Rank 31) Total : 24 [sec]
|
||||||
|
[Timing] (Rank 31) Full-Sort : 3611 [msec]
|
||||||
|
[Timing] (Rank 31) Exchange : 12 [sec]
|
||||||
|
[Timing] (Rank 31) Min-Max : 2210 [msec]
|
||||||
|
[Timing] (Rank 31) Elbow-Sort: 3900 [msec]
|
||||||
|
[Timing] (Rank 19) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 19) Full-Sort : 3572 [msec]
|
||||||
|
[Timing] (Rank 19) Exchange : 9695 [msec]
|
||||||
|
[Timing] (Rank 19) Min-Max : 3253 [msec]
|
||||||
|
[Timing] (Rank 19) Elbow-Sort: 3979 [msec]
|
||||||
|
[Timing] (Rank 26) Total : 24 [sec]
|
||||||
|
[Timing] (Rank 26) Full-Sort : 3716 [msec]
|
||||||
|
[Timing] (Rank 26) Exchange : 11 [sec]
|
||||||
|
[Timing] (Rank 26) Min-Max : 2659 [msec]
|
||||||
|
[Timing] (Rank 26) Elbow-Sort: 3861 [msec]
|
||||||
|
[Timing] (Rank 25) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 25) Full-Sort : 3578 [msec]
|
||||||
|
[Timing] (Rank 25) Exchange : 8884 [msec]
|
||||||
|
[Timing] (Rank 25) Min-Max : 3827 [msec]
|
||||||
|
[Timing] (Rank 25) Elbow-Sort: 3910 [msec]
|
||||||
|
[Timing] (Rank 17) Total : 24 [sec]
|
||||||
|
[Timing] (Rank 17) Full-Sort : 3551 [msec]
|
||||||
|
[Timing] (Rank 17) Exchange : 10 [sec]
|
||||||
|
[Timing] (Rank 17) Min-Max : 2987 [msec]
|
||||||
|
[Timing] (Rank 17) Elbow-Sort: 4033 [msec]
|
||||||
|
[Timing] (Rank 30) Total : 24 [sec]
|
||||||
|
[Timing] (Rank 30) Full-Sort : 3735 [msec]
|
||||||
|
[Timing] (Rank 30) Exchange : 10 [sec]
|
||||||
|
[Timing] (Rank 30) Min-Max : 2824 [msec]
|
||||||
|
[Timing] (Rank 30) Elbow-Sort: 3880 [msec]
|
||||||
|
[Timing] (Rank 20) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 20) Full-Sort : 3655 [msec]
|
||||||
|
[Timing] (Rank 20) Exchange : 11 [sec]
|
||||||
|
[Timing] (Rank 20) Min-Max : 2490 [msec]
|
||||||
|
[Timing] (Rank 20) Elbow-Sort: 3941 [msec]
|
||||||
|
[Timing] (Rank 28) Total : 24 [sec]
|
||||||
|
[Timing] (Rank 28) Full-Sort : 3740 [msec]
|
||||||
|
[Timing] (Rank 28) Exchange : 9382 [msec]
|
||||||
|
[Timing] (Rank 28) Min-Max : 3518 [msec]
|
||||||
|
[Timing] (Rank 28) Elbow-Sort: 3887 [msec]
|
||||||
|
[Timing] (Rank 21) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 21) Full-Sort : 3587 [msec]
|
||||||
|
[Timing] (Rank 21) Exchange : 12 [sec]
|
||||||
|
[Timing] (Rank 21) Min-Max : 1935 [msec]
|
||||||
|
[Timing] (Rank 21) Elbow-Sort: 3959 [msec]
|
||||||
|
[Timing] (Rank 29) Total : 24 [sec]
|
||||||
|
[Timing] (Rank 29) Full-Sort : 3631 [msec]
|
||||||
|
[Timing] (Rank 29) Exchange : 10 [sec]
|
||||||
|
[Timing] (Rank 29) Min-Max : 2951 [msec]
|
||||||
|
[Timing] (Rank 29) Elbow-Sort: 3887 [msec]
|
||||||
|
[Timing] (Rank 7) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 7) Full-Sort : 3708 [msec]
|
||||||
|
[Timing] (Rank 7) Exchange : 10 [sec]
|
||||||
|
[Timing] (Rank 7) Min-Max : 2305 [msec]
|
||||||
|
[Timing] (Rank 7) Elbow-Sort: 3838 [msec]
|
||||||
|
[Timing] (Rank 1) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 3685 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 11 [sec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 1692 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 3875 [msec]
|
||||||
|
[Timing] (Rank 12) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 12) Full-Sort : 3860 [msec]
|
||||||
|
[Timing] (Rank 12) Exchange : 9665 [msec]
|
||||||
|
[Timing] (Rank 12) Min-Max : 2793 [msec]
|
||||||
|
[Timing] (Rank 12) Elbow-Sort: 3704 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 3917 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 13 [sec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 1021 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 3818 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 8) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 8) Full-Sort : 3874 [msec]
|
||||||
|
[Timing] (Rank 8) Exchange : 10 [sec]
|
||||||
|
[Timing] (Rank 8) Min-Max : 2403 [msec]
|
||||||
|
[Timing] (Rank 8) Elbow-Sort: 3759 [msec]
|
||||||
|
[Timing] (Rank 2) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 3851 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 11 [sec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 1664 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 3877 [msec]
|
||||||
|
[Timing] (Rank 15) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 15) Full-Sort : 3698 [msec]
|
||||||
|
[Timing] (Rank 15) Exchange : 11 [sec]
|
||||||
|
[Timing] (Rank 15) Min-Max : 1851 [msec]
|
||||||
|
[Timing] (Rank 15) Elbow-Sort: 3754 [msec]
|
||||||
|
[Timing] (Rank 4) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 4) Full-Sort : 3837 [msec]
|
||||||
|
[Timing] (Rank 4) Exchange : 11 [sec]
|
||||||
|
[Timing] (Rank 4) Min-Max : 2036 [msec]
|
||||||
|
[Timing] (Rank 4) Elbow-Sort: 3867 [msec]
|
||||||
|
[Timing] (Rank 6) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 6) Full-Sort : 3840 [msec]
|
||||||
|
[Timing] (Rank 6) Exchange : 9850 [msec]
|
||||||
|
[Timing] (Rank 6) Min-Max : 2619 [msec]
|
||||||
|
[Timing] (Rank 6) Elbow-Sort: 3762 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 3700 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 10 [sec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 2501 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 3820 [msec]
|
||||||
|
[Timing] (Rank 11) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 11) Full-Sort : 3722 [msec]
|
||||||
|
[Timing] (Rank 11) Exchange : 10 [sec]
|
||||||
|
[Timing] (Rank 11) Min-Max : 2315 [msec]
|
||||||
|
[Timing] (Rank 11) Elbow-Sort: 3751 [msec]
|
||||||
|
[Timing] (Rank 10) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 10) Full-Sort : 3853 [msec]
|
||||||
|
[Timing] (Rank 10) Exchange : 11 [sec]
|
||||||
|
[Timing] (Rank 10) Min-Max : 2050 [msec]
|
||||||
|
[Timing] (Rank 10) Elbow-Sort: 3734 [msec]
|
||||||
|
[Timing] (Rank 13) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 13) Full-Sort : 3679 [msec]
|
||||||
|
[Timing] (Rank 13) Exchange : 10 [sec]
|
||||||
|
[Timing] (Rank 13) Min-Max : 2261 [msec]
|
||||||
|
[Timing] (Rank 13) Elbow-Sort: 3785 [msec]
|
||||||
|
[Timing] (Rank 9) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 9) Full-Sort : 3702 [msec]
|
||||||
|
[Timing] (Rank 9) Exchange : 10 [sec]
|
||||||
|
[Timing] (Rank 9) Min-Max : 2424 [msec]
|
||||||
|
[Timing] (Rank 9) Elbow-Sort: 3843 [msec]
|
||||||
|
[Timing] (Rank 14) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 14) Full-Sort : 3849 [msec]
|
||||||
|
[Timing] (Rank 14) Exchange : 10 [sec]
|
||||||
|
[Timing] (Rank 14) Min-Max : 2378 [msec]
|
||||||
|
[Timing] (Rank 14) Elbow-Sort: 3692 [msec]
|
||||||
|
[Timing] (Rank 60) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 60) Full-Sort : 4165 [msec]
|
||||||
|
[Timing] (Rank 60) Exchange : 8414 [msec]
|
||||||
|
[Timing] (Rank 60) Min-Max : 3702 [msec]
|
||||||
|
[Timing] (Rank 60) Elbow-Sort: 3959 [msec]
|
||||||
|
[Timing] (Rank 48) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 48) Full-Sort : 4026 [msec]
|
||||||
|
[Timing] (Rank 48) Exchange : 9067 [msec]
|
||||||
|
[Timing] (Rank 48) Min-Max : 3759 [msec]
|
||||||
|
[Timing] (Rank 48) Elbow-Sort: 3899 [msec]
|
||||||
|
[Timing] (Rank 57) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 57) Full-Sort : 4108 [msec]
|
||||||
|
[Timing] (Rank 57) Exchange : 7689 [msec]
|
||||||
|
[Timing] (Rank 57) Min-Max : 4305 [msec]
|
||||||
|
[Timing] (Rank 57) Elbow-Sort: 3978 [msec]
|
||||||
|
[Timing] (Rank 53) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 53) Full-Sort : 4118 [msec]
|
||||||
|
[Timing] (Rank 53) Exchange : 9305 [msec]
|
||||||
|
[Timing] (Rank 53) Min-Max : 3401 [msec]
|
||||||
|
[Timing] (Rank 53) Elbow-Sort: 3933 [msec]
|
||||||
|
[Timing] (Rank 50) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 50) Full-Sort : 4179 [msec]
|
||||||
|
[Timing] (Rank 50) Exchange : 7482 [msec]
|
||||||
|
[Timing] (Rank 50) Min-Max : 4517 [msec]
|
||||||
|
[Timing] (Rank 50) Elbow-Sort: 3952 [msec]
|
||||||
|
[Timing] (Rank 51) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 51) Full-Sort : 3944 [msec]
|
||||||
|
[Timing] (Rank 51) Exchange : 7271 [msec]
|
||||||
|
[Timing] (Rank 51) Min-Max : 4695 [msec]
|
||||||
|
[Timing] (Rank 51) Elbow-Sort: 3930 [msec]
|
||||||
|
[Timing] (Rank 56) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 56) Full-Sort : 4198 [msec]
|
||||||
|
[Timing] (Rank 56) Exchange : 8006 [msec]
|
||||||
|
[Timing] (Rank 56) Min-Max : 4098 [msec]
|
||||||
|
[Timing] (Rank 56) Elbow-Sort: 3956 [msec]
|
||||||
|
[Timing] (Rank 61) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 61) Full-Sort : 4061 [msec]
|
||||||
|
[Timing] (Rank 61) Exchange : 10 [sec]
|
||||||
|
[Timing] (Rank 61) Min-Max : 3043 [msec]
|
||||||
|
[Timing] (Rank 61) Elbow-Sort: 3965 [msec]
|
||||||
|
[Timing] (Rank 62) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 62) Full-Sort : 4147 [msec]
|
||||||
|
[Timing] (Rank 62) Exchange : 10 [sec]
|
||||||
|
[Timing] (Rank 62) Min-Max : 3043 [msec]
|
||||||
|
[Timing] (Rank 62) Elbow-Sort: 3937 [msec]
|
||||||
|
[Timing] (Rank 63) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 63) Full-Sort : 3926 [msec]
|
||||||
|
[Timing] (Rank 63) Exchange : 11 [sec]
|
||||||
|
[Timing] (Rank 63) Min-Max : 2316 [msec]
|
||||||
|
[Timing] (Rank 63) Elbow-Sort: 3929 [msec]
|
||||||
|
[Timing] (Rank 49) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 49) Full-Sort : 4064 [msec]
|
||||||
|
[Timing] (Rank 49) Exchange : 7821 [msec]
|
||||||
|
[Timing] (Rank 49) Min-Max : 4277 [msec]
|
||||||
|
[Timing] (Rank 49) Elbow-Sort: 3962 [msec]
|
||||||
|
[Timing] (Rank 54) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 54) Full-Sort : 4208 [msec]
|
||||||
|
[Timing] (Rank 54) Exchange : 7894 [msec]
|
||||||
|
[Timing] (Rank 54) Min-Max : 4225 [msec]
|
||||||
|
[Timing] (Rank 54) Elbow-Sort: 3906 [msec]
|
||||||
|
[Timing] (Rank 59) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 59) Full-Sort : 4063 [msec]
|
||||||
|
[Timing] (Rank 59) Exchange : 9230 [msec]
|
||||||
|
[Timing] (Rank 59) Min-Max : 3648 [msec]
|
||||||
|
[Timing] (Rank 59) Elbow-Sort: 3881 [msec]
|
||||||
|
[Timing] (Rank 55) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 55) Full-Sort : 4051 [msec]
|
||||||
|
[Timing] (Rank 55) Exchange : 8558 [msec]
|
||||||
|
[Timing] (Rank 55) Min-Max : 3839 [msec]
|
||||||
|
[Timing] (Rank 55) Elbow-Sort: 3912 [msec]
|
||||||
|
[Timing] (Rank 58) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 58) Full-Sort : 4216 [msec]
|
||||||
|
[Timing] (Rank 58) Exchange : 9316 [msec]
|
||||||
|
[Timing] (Rank 58) Min-Max : 3588 [msec]
|
||||||
|
[Timing] (Rank 58) Elbow-Sort: 3844 [msec]
|
||||||
|
[Timing] (Rank 34) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 34) Full-Sort : 4182 [msec]
|
||||||
|
[Timing] (Rank 34) Exchange : 8636 [msec]
|
||||||
|
[Timing] (Rank 34) Min-Max : 3876 [msec]
|
||||||
|
[Timing] (Rank 34) Elbow-Sort: 3895 [msec]
|
||||||
|
[Timing] (Rank 32) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 32) Full-Sort : 4169 [msec]
|
||||||
|
[Timing] (Rank 32) Exchange : 10 [sec]
|
||||||
|
[Timing] (Rank 32) Min-Max : 2996 [msec]
|
||||||
|
[Timing] (Rank 32) Elbow-Sort: 4069 [msec]
|
||||||
|
[Timing] (Rank 36) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 36) Full-Sort : 4203 [msec]
|
||||||
|
[Timing] (Rank 36) Exchange : 8507 [msec]
|
||||||
|
[Timing] (Rank 36) Min-Max : 3652 [msec]
|
||||||
|
[Timing] (Rank 36) Elbow-Sort: 3949 [msec]
|
||||||
|
[Timing] (Rank 44) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 44) Full-Sort : 4159 [msec]
|
||||||
|
[Timing] (Rank 44) Exchange : 8016 [msec]
|
||||||
|
[Timing] (Rank 44) Min-Max : 4191 [msec]
|
||||||
|
[Timing] (Rank 44) Elbow-Sort: 3848 [msec]
|
||||||
|
[Timing] (Rank 38) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 38) Full-Sort : 4206 [msec]
|
||||||
|
[Timing] (Rank 38) Exchange : 6955 [msec]
|
||||||
|
[Timing] (Rank 38) Min-Max : 4664 [msec]
|
||||||
|
[Timing] (Rank 38) Elbow-Sort: 3863 [msec]
|
||||||
|
[Timing] (Rank 40) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 40) Full-Sort : 4207 [msec]
|
||||||
|
[Timing] (Rank 40) Exchange : 10 [sec]
|
||||||
|
[Timing] (Rank 40) Min-Max : 2704 [msec]
|
||||||
|
[Timing] (Rank 40) Elbow-Sort: 3937 [msec]
|
||||||
|
[Timing] (Rank 43) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 43) Full-Sort : 4151 [msec]
|
||||||
|
[Timing] (Rank 43) Exchange : 10 [sec]
|
||||||
|
[Timing] (Rank 43) Min-Max : 2923 [msec]
|
||||||
|
[Timing] (Rank 43) Elbow-Sort: 3920 [msec]
|
||||||
|
[Timing] (Rank 42) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 42) Full-Sort : 4236 [msec]
|
||||||
|
[Timing] (Rank 42) Exchange : 11 [sec]
|
||||||
|
[Timing] (Rank 42) Min-Max : 2392 [msec]
|
||||||
|
[Timing] (Rank 42) Elbow-Sort: 3957 [msec]
|
||||||
|
[Timing] (Rank 46) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 46) Full-Sort : 4175 [msec]
|
||||||
|
[Timing] (Rank 46) Exchange : 8866 [msec]
|
||||||
|
[Timing] (Rank 46) Min-Max : 3829 [msec]
|
||||||
|
[Timing] (Rank 46) Elbow-Sort: 3817 [msec]
|
||||||
|
[Timing] (Rank 41) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 41) Full-Sort : 4190 [msec]
|
||||||
|
[Timing] (Rank 41) Exchange : 9234 [msec]
|
||||||
|
[Timing] (Rank 41) Min-Max : 3263 [msec]
|
||||||
|
[Timing] (Rank 41) Elbow-Sort: 4000 [msec]
|
||||||
|
[Timing] (Rank 39) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 39) Full-Sort : 4040 [msec]
|
||||||
|
[Timing] (Rank 39) Exchange : 8247 [msec]
|
||||||
|
[Timing] (Rank 39) Min-Max : 4068 [msec]
|
||||||
|
[Timing] (Rank 39) Elbow-Sort: 3900 [msec]
|
||||||
|
[Timing] (Rank 47) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 47) Full-Sort : 3949 [msec]
|
||||||
|
[Timing] (Rank 47) Exchange : 9993 [msec]
|
||||||
|
[Timing] (Rank 47) Min-Max : 3150 [msec]
|
||||||
|
[Timing] (Rank 47) Elbow-Sort: 3821 [msec]
|
||||||
|
[Timing] (Rank 37) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 37) Full-Sort : 4140 [msec]
|
||||||
|
[Timing] (Rank 37) Exchange : 8504 [msec]
|
||||||
|
[Timing] (Rank 37) Min-Max : 3643 [msec]
|
||||||
|
[Timing] (Rank 37) Elbow-Sort: 3906 [msec]
|
||||||
|
[Timing] (Rank 35) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 35) Full-Sort : 3988 [msec]
|
||||||
|
[Timing] (Rank 35) Exchange : 7886 [msec]
|
||||||
|
[Timing] (Rank 35) Min-Max : 4338 [msec]
|
||||||
|
[Timing] (Rank 35) Elbow-Sort: 3925 [msec]
|
||||||
|
[Timing] (Rank 33) Total : 23 [sec]
|
||||||
|
[Timing] (Rank 33) Full-Sort : 3909 [msec]
|
||||||
|
[Timing] (Rank 33) Exchange : 8920 [msec]
|
||||||
|
[Timing] (Rank 33) Min-Max : 3730 [msec]
|
||||||
|
[Timing] (Rank 33) Elbow-Sort: 3994 [msec]
|
||||||
@@ -0,0 +1,102 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 11) Total : 92 [msec]
|
||||||
|
[Timing] (Rank 11) Full-Sort : 18 [msec]
|
||||||
|
[Timing] (Rank 11) Exchange : 38 [msec]
|
||||||
|
[Timing] (Rank 11) Min-Max : 6507 [usec]
|
||||||
|
[Timing] (Rank 11) Elbow-Sort: 18 [msec]
|
||||||
|
[Timing] (Rank 7) Total : 95 [msec]
|
||||||
|
[Timing] (Rank 7) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 7) Exchange : 38 [msec]
|
||||||
|
[Timing] (Rank 7) Min-Max : 8194 [usec]
|
||||||
|
[Timing] (Rank 7) Elbow-Sort: 18 [msec]
|
||||||
|
[Timing] (Rank 14) Total : 92 [msec]
|
||||||
|
[Timing] (Rank 14) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 14) Exchange : 33 [msec]
|
||||||
|
[Timing] (Rank 14) Min-Max : 8867 [usec]
|
||||||
|
[Timing] (Rank 14) Elbow-Sort: 18 [msec]
|
||||||
|
[Timing] (Rank 1) Total : 96 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 22 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 28 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 8576 [usec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 22 [msec]
|
||||||
|
[Timing] (Rank 10) Total : 92 [msec]
|
||||||
|
[Timing] (Rank 10) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 10) Exchange : 37 [msec]
|
||||||
|
[Timing] (Rank 10) Min-Max : 6457 [usec]
|
||||||
|
[Timing] (Rank 10) Elbow-Sort: 18 [msec]
|
||||||
|
[Timing] (Rank 9) Total : 92 [msec]
|
||||||
|
[Timing] (Rank 9) Full-Sort : 18 [msec]
|
||||||
|
[Timing] (Rank 9) Exchange : 32 [msec]
|
||||||
|
[Timing] (Rank 9) Min-Max : 8483 [usec]
|
||||||
|
[Timing] (Rank 9) Elbow-Sort: 18 [msec]
|
||||||
|
[Timing] (Rank 8) Total : 92 [msec]
|
||||||
|
[Timing] (Rank 8) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 8) Exchange : 35 [msec]
|
||||||
|
[Timing] (Rank 8) Min-Max : 7576 [usec]
|
||||||
|
[Timing] (Rank 8) Elbow-Sort: 18 [msec]
|
||||||
|
[Timing] (Rank 4) Total : 96 [msec]
|
||||||
|
[Timing] (Rank 4) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 4) Exchange : 37 [msec]
|
||||||
|
[Timing] (Rank 4) Min-Max : 8161 [usec]
|
||||||
|
[Timing] (Rank 4) Elbow-Sort: 18 [msec]
|
||||||
|
[Timing] (Rank 5) Total : 96 [msec]
|
||||||
|
[Timing] (Rank 5) Full-Sort : 18 [msec]
|
||||||
|
[Timing] (Rank 5) Exchange : 39 [msec]
|
||||||
|
[Timing] (Rank 5) Min-Max : 7305 [usec]
|
||||||
|
[Timing] (Rank 5) Elbow-Sort: 19 [msec]
|
||||||
|
[Timing] (Rank 6) Total : 96 [msec]
|
||||||
|
[Timing] (Rank 6) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 6) Exchange : 33 [msec]
|
||||||
|
[Timing] (Rank 6) Min-Max : 10 [msec]
|
||||||
|
[Timing] (Rank 6) Elbow-Sort: 18 [msec]
|
||||||
|
[Timing] (Rank 12) Total : 90 [msec]
|
||||||
|
[Timing] (Rank 12) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 12) Exchange : 28 [msec]
|
||||||
|
[Timing] (Rank 12) Min-Max : 9247 [usec]
|
||||||
|
[Timing] (Rank 12) Elbow-Sort: 18 [msec]
|
||||||
|
[Timing] (Rank 13) Total : 92 [msec]
|
||||||
|
[Timing] (Rank 13) Full-Sort : 18 [msec]
|
||||||
|
[Timing] (Rank 13) Exchange : 38 [msec]
|
||||||
|
[Timing] (Rank 13) Min-Max : 6283 [usec]
|
||||||
|
[Timing] (Rank 13) Elbow-Sort: 18 [msec]
|
||||||
|
[Timing] (Rank 15) Total : 92 [msec]
|
||||||
|
[Timing] (Rank 15) Full-Sort : 18 [msec]
|
||||||
|
[Timing] (Rank 15) Exchange : 42 [msec]
|
||||||
|
[Timing] (Rank 15) Min-Max : 4769 [usec]
|
||||||
|
[Timing] (Rank 15) Elbow-Sort: 18 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 96 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 23 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 34 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 6433 [usec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 21 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 2) Total : 97 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 23 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 27 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 9269 [usec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 21 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 96 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 22 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 26 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 10 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 21 [msec]
|
||||||
@@ -0,0 +1,102 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 10) Total : 730 [msec]
|
||||||
|
[Timing] (Rank 10) Full-Sort : 178 [msec]
|
||||||
|
[Timing] (Rank 10) Exchange : 297 [msec]
|
||||||
|
[Timing] (Rank 10) Min-Max : 39 [msec]
|
||||||
|
[Timing] (Rank 10) Elbow-Sort: 151 [msec]
|
||||||
|
[Timing] (Rank 14) Total : 736 [msec]
|
||||||
|
[Timing] (Rank 14) Full-Sort : 178 [msec]
|
||||||
|
[Timing] (Rank 14) Exchange : 255 [msec]
|
||||||
|
[Timing] (Rank 14) Min-Max : 64 [msec]
|
||||||
|
[Timing] (Rank 14) Elbow-Sort: 150 [msec]
|
||||||
|
[Timing] (Rank 1) Total : 760 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 211 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 159 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 78 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 188 [msec]
|
||||||
|
[Timing] (Rank 7) Total : 756 [msec]
|
||||||
|
[Timing] (Rank 7) Full-Sort : 179 [msec]
|
||||||
|
[Timing] (Rank 7) Exchange : 236 [msec]
|
||||||
|
[Timing] (Rank 7) Min-Max : 80 [msec]
|
||||||
|
[Timing] (Rank 7) Elbow-Sort: 160 [msec]
|
||||||
|
[Timing] (Rank 9) Total : 732 [msec]
|
||||||
|
[Timing] (Rank 9) Full-Sort : 173 [msec]
|
||||||
|
[Timing] (Rank 9) Exchange : 226 [msec]
|
||||||
|
[Timing] (Rank 9) Min-Max : 67 [msec]
|
||||||
|
[Timing] (Rank 9) Elbow-Sort: 153 [msec]
|
||||||
|
[Timing] (Rank 11) Total : 732 [msec]
|
||||||
|
[Timing] (Rank 11) Full-Sort : 172 [msec]
|
||||||
|
[Timing] (Rank 11) Exchange : 268 [msec]
|
||||||
|
[Timing] (Rank 11) Min-Max : 54 [msec]
|
||||||
|
[Timing] (Rank 11) Elbow-Sort: 153 [msec]
|
||||||
|
[Timing] (Rank 8) Total : 734 [msec]
|
||||||
|
[Timing] (Rank 8) Full-Sort : 183 [msec]
|
||||||
|
[Timing] (Rank 8) Exchange : 256 [msec]
|
||||||
|
[Timing] (Rank 8) Min-Max : 54 [msec]
|
||||||
|
[Timing] (Rank 8) Elbow-Sort: 158 [msec]
|
||||||
|
[Timing] (Rank 13) Total : 738 [msec]
|
||||||
|
[Timing] (Rank 13) Full-Sort : 172 [msec]
|
||||||
|
[Timing] (Rank 13) Exchange : 234 [msec]
|
||||||
|
[Timing] (Rank 13) Min-Max : 70 [msec]
|
||||||
|
[Timing] (Rank 13) Elbow-Sort: 154 [msec]
|
||||||
|
[Timing] (Rank 15) Total : 735 [msec]
|
||||||
|
[Timing] (Rank 15) Full-Sort : 174 [msec]
|
||||||
|
[Timing] (Rank 15) Exchange : 269 [msec]
|
||||||
|
[Timing] (Rank 15) Min-Max : 56 [msec]
|
||||||
|
[Timing] (Rank 15) Elbow-Sort: 150 [msec]
|
||||||
|
[Timing] (Rank 12) Total : 738 [msec]
|
||||||
|
[Timing] (Rank 12) Full-Sort : 186 [msec]
|
||||||
|
[Timing] (Rank 12) Exchange : 208 [msec]
|
||||||
|
[Timing] (Rank 12) Min-Max : 77 [msec]
|
||||||
|
[Timing] (Rank 12) Elbow-Sort: 152 [msec]
|
||||||
|
[Timing] (Rank 2) Total : 755 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 217 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 150 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 78 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 185 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 755 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 211 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 141 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 87 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 188 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 759 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 218 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 218 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 59 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 183 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 4) Total : 748 [msec]
|
||||||
|
[Timing] (Rank 4) Full-Sort : 185 [msec]
|
||||||
|
[Timing] (Rank 4) Exchange : 231 [msec]
|
||||||
|
[Timing] (Rank 4) Min-Max : 78 [msec]
|
||||||
|
[Timing] (Rank 4) Elbow-Sort: 159 [msec]
|
||||||
|
[Timing] (Rank 5) Total : 748 [msec]
|
||||||
|
[Timing] (Rank 5) Full-Sort : 180 [msec]
|
||||||
|
[Timing] (Rank 5) Exchange : 243 [msec]
|
||||||
|
[Timing] (Rank 5) Min-Max : 73 [msec]
|
||||||
|
[Timing] (Rank 5) Elbow-Sort: 159 [msec]
|
||||||
|
[Timing] (Rank 6) Total : 754 [msec]
|
||||||
|
[Timing] (Rank 6) Full-Sort : 186 [msec]
|
||||||
|
[Timing] (Rank 6) Exchange : 201 [msec]
|
||||||
|
[Timing] (Rank 6) Min-Max : 95 [msec]
|
||||||
|
[Timing] (Rank 6) Elbow-Sort: 157 [msec]
|
||||||
@@ -0,0 +1,102 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 11) Total : 2967 [msec]
|
||||||
|
[Timing] (Rank 11) Full-Sort : 754 [msec]
|
||||||
|
[Timing] (Rank 11) Exchange : 936 [msec]
|
||||||
|
[Timing] (Rank 11) Min-Max : 265 [msec]
|
||||||
|
[Timing] (Rank 11) Elbow-Sort: 623 [msec]
|
||||||
|
[Timing] (Rank 13) Total : 3014 [msec]
|
||||||
|
[Timing] (Rank 13) Full-Sort : 747 [msec]
|
||||||
|
[Timing] (Rank 13) Exchange : 991 [msec]
|
||||||
|
[Timing] (Rank 13) Min-Max : 259 [msec]
|
||||||
|
[Timing] (Rank 13) Elbow-Sort: 622 [msec]
|
||||||
|
[Timing] (Rank 4) Total : 3099 [msec]
|
||||||
|
[Timing] (Rank 4) Full-Sort : 783 [msec]
|
||||||
|
[Timing] (Rank 4) Exchange : 970 [msec]
|
||||||
|
[Timing] (Rank 4) Min-Max : 322 [msec]
|
||||||
|
[Timing] (Rank 4) Elbow-Sort: 648 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 3124 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 908 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 511 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 421 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 747 [msec]
|
||||||
|
[Timing] (Rank 10) Total : 2963 [msec]
|
||||||
|
[Timing] (Rank 10) Full-Sort : 775 [msec]
|
||||||
|
[Timing] (Rank 10) Exchange : 942 [msec]
|
||||||
|
[Timing] (Rank 10) Min-Max : 264 [msec]
|
||||||
|
[Timing] (Rank 10) Elbow-Sort: 613 [msec]
|
||||||
|
[Timing] (Rank 9) Total : 2985 [msec]
|
||||||
|
[Timing] (Rank 9) Full-Sort : 742 [msec]
|
||||||
|
[Timing] (Rank 9) Exchange : 880 [msec]
|
||||||
|
[Timing] (Rank 9) Min-Max : 293 [msec]
|
||||||
|
[Timing] (Rank 9) Elbow-Sort: 627 [msec]
|
||||||
|
[Timing] (Rank 8) Total : 2999 [msec]
|
||||||
|
[Timing] (Rank 8) Full-Sort : 788 [msec]
|
||||||
|
[Timing] (Rank 8) Exchange : 918 [msec]
|
||||||
|
[Timing] (Rank 8) Min-Max : 260 [msec]
|
||||||
|
[Timing] (Rank 8) Elbow-Sort: 648 [msec]
|
||||||
|
[Timing] (Rank 15) Total : 3008 [msec]
|
||||||
|
[Timing] (Rank 15) Full-Sort : 751 [msec]
|
||||||
|
[Timing] (Rank 15) Exchange : 1155 [msec]
|
||||||
|
[Timing] (Rank 15) Min-Max : 201 [msec]
|
||||||
|
[Timing] (Rank 15) Elbow-Sort: 612 [msec]
|
||||||
|
[Timing] (Rank 14) Total : 3010 [msec]
|
||||||
|
[Timing] (Rank 14) Full-Sort : 777 [msec]
|
||||||
|
[Timing] (Rank 14) Exchange : 856 [msec]
|
||||||
|
[Timing] (Rank 14) Min-Max : 327 [msec]
|
||||||
|
[Timing] (Rank 14) Elbow-Sort: 615 [msec]
|
||||||
|
[Timing] (Rank 12) Total : 3017 [msec]
|
||||||
|
[Timing] (Rank 12) Full-Sort : 791 [msec]
|
||||||
|
[Timing] (Rank 12) Exchange : 824 [msec]
|
||||||
|
[Timing] (Rank 12) Min-Max : 321 [msec]
|
||||||
|
[Timing] (Rank 12) Elbow-Sort: 620 [msec]
|
||||||
|
[Timing] (Rank 7) Total : 3118 [msec]
|
||||||
|
[Timing] (Rank 7) Full-Sort : 752 [msec]
|
||||||
|
[Timing] (Rank 7) Exchange : 1011 [msec]
|
||||||
|
[Timing] (Rank 7) Min-Max : 319 [msec]
|
||||||
|
[Timing] (Rank 7) Elbow-Sort: 636 [msec]
|
||||||
|
[Timing] (Rank 5) Total : 3100 [msec]
|
||||||
|
[Timing] (Rank 5) Full-Sort : 751 [msec]
|
||||||
|
[Timing] (Rank 5) Exchange : 944 [msec]
|
||||||
|
[Timing] (Rank 5) Min-Max : 329 [msec]
|
||||||
|
[Timing] (Rank 5) Elbow-Sort: 656 [msec]
|
||||||
|
[Timing] (Rank 6) Total : 3116 [msec]
|
||||||
|
[Timing] (Rank 6) Full-Sort : 783 [msec]
|
||||||
|
[Timing] (Rank 6) Exchange : 846 [msec]
|
||||||
|
[Timing] (Rank 6) Min-Max : 391 [msec]
|
||||||
|
[Timing] (Rank 6) Elbow-Sort: 636 [msec]
|
||||||
|
[Timing] (Rank 2) Total : 3117 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 943 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 509 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 386 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 729 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 3161 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 944 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 814 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 310 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 745 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 1) Total : 3159 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 904 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 606 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 379 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 747 [msec]
|
||||||
@@ -0,0 +1,102 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 13) Total : 12 [sec]
|
||||||
|
[Timing] (Rank 13) Full-Sort : 3198 [msec]
|
||||||
|
[Timing] (Rank 13) Exchange : 3265 [msec]
|
||||||
|
[Timing] (Rank 13) Min-Max : 1228 [msec]
|
||||||
|
[Timing] (Rank 13) Elbow-Sort: 2520 [msec]
|
||||||
|
[Timing] (Rank 10) Total : 11 [sec]
|
||||||
|
[Timing] (Rank 10) Full-Sort : 3345 [msec]
|
||||||
|
[Timing] (Rank 10) Exchange : 4184 [msec]
|
||||||
|
[Timing] (Rank 10) Min-Max : 749 [msec]
|
||||||
|
[Timing] (Rank 10) Elbow-Sort: 2492 [msec]
|
||||||
|
[Timing] (Rank 4) Total : 12 [sec]
|
||||||
|
[Timing] (Rank 4) Full-Sort : 3399 [msec]
|
||||||
|
[Timing] (Rank 4) Exchange : 3766 [msec]
|
||||||
|
[Timing] (Rank 4) Min-Max : 1216 [msec]
|
||||||
|
[Timing] (Rank 4) Elbow-Sort: 2567 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 12 [sec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 3864 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 2290 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 1397 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 3016 [msec]
|
||||||
|
[Timing] (Rank 14) Total : 12 [sec]
|
||||||
|
[Timing] (Rank 14) Full-Sort : 3346 [msec]
|
||||||
|
[Timing] (Rank 14) Exchange : 3491 [msec]
|
||||||
|
[Timing] (Rank 14) Min-Max : 1109 [msec]
|
||||||
|
[Timing] (Rank 14) Elbow-Sort: 2475 [msec]
|
||||||
|
[Timing] (Rank 15) Total : 12 [sec]
|
||||||
|
[Timing] (Rank 15) Full-Sort : 3220 [msec]
|
||||||
|
[Timing] (Rank 15) Exchange : 3742 [msec]
|
||||||
|
[Timing] (Rank 15) Min-Max : 1014 [msec]
|
||||||
|
[Timing] (Rank 15) Elbow-Sort: 2482 [msec]
|
||||||
|
[Timing] (Rank 12) Total : 12 [sec]
|
||||||
|
[Timing] (Rank 12) Full-Sort : 3406 [msec]
|
||||||
|
[Timing] (Rank 12) Exchange : 3126 [msec]
|
||||||
|
[Timing] (Rank 12) Min-Max : 1218 [msec]
|
||||||
|
[Timing] (Rank 12) Elbow-Sort: 2494 [msec]
|
||||||
|
[Timing] (Rank 9) Total : 11 [sec]
|
||||||
|
[Timing] (Rank 9) Full-Sort : 3210 [msec]
|
||||||
|
[Timing] (Rank 9) Exchange : 3341 [msec]
|
||||||
|
[Timing] (Rank 9) Min-Max : 1063 [msec]
|
||||||
|
[Timing] (Rank 9) Elbow-Sort: 2497 [msec]
|
||||||
|
[Timing] (Rank 11) Total : 11 [sec]
|
||||||
|
[Timing] (Rank 11) Full-Sort : 3221 [msec]
|
||||||
|
[Timing] (Rank 11) Exchange : 3910 [msec]
|
||||||
|
[Timing] (Rank 11) Min-Max : 859 [msec]
|
||||||
|
[Timing] (Rank 11) Elbow-Sort: 2481 [msec]
|
||||||
|
[Timing] (Rank 8) Total : 11 [sec]
|
||||||
|
[Timing] (Rank 8) Full-Sort : 3369 [msec]
|
||||||
|
[Timing] (Rank 8) Exchange : 3771 [msec]
|
||||||
|
[Timing] (Rank 8) Min-Max : 835 [msec]
|
||||||
|
[Timing] (Rank 8) Elbow-Sort: 2560 [msec]
|
||||||
|
[Timing] (Rank 1) Total : 12 [sec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 3886 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 2577 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 1229 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 3045 [msec]
|
||||||
|
[Timing] (Rank 2) Total : 12 [sec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 4035 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 3099 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 981 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 2976 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 12 [sec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 4048 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 4046 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 648 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 2977 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 6) Total : 12 [sec]
|
||||||
|
[Timing] (Rank 6) Full-Sort : 3388 [msec]
|
||||||
|
[Timing] (Rank 6) Exchange : 3293 [msec]
|
||||||
|
[Timing] (Rank 6) Min-Max : 1457 [msec]
|
||||||
|
[Timing] (Rank 6) Elbow-Sort: 2556 [msec]
|
||||||
|
[Timing] (Rank 5) Total : 12 [sec]
|
||||||
|
[Timing] (Rank 5) Full-Sort : 3245 [msec]
|
||||||
|
[Timing] (Rank 5) Exchange : 3710 [msec]
|
||||||
|
[Timing] (Rank 5) Min-Max : 1211 [msec]
|
||||||
|
[Timing] (Rank 5) Elbow-Sort: 2624 [msec]
|
||||||
|
[Timing] (Rank 7) Total : 12 [sec]
|
||||||
|
[Timing] (Rank 7) Full-Sort : 3247 [msec]
|
||||||
|
[Timing] (Rank 7) Exchange : 3678 [msec]
|
||||||
|
[Timing] (Rank 7) Min-Max : 1326 [msec]
|
||||||
|
[Timing] (Rank 7) Elbow-Sort: 2579 [msec]
|
||||||
@@ -0,0 +1,182 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 19) Total : 114 [msec]
|
||||||
|
[Timing] (Rank 19) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 19) Exchange : 34 [msec]
|
||||||
|
[Timing] (Rank 19) Min-Max : 17 [msec]
|
||||||
|
[Timing] (Rank 19) Elbow-Sort: 23 [msec]
|
||||||
|
[Timing] (Rank 24) Total : 120 [msec]
|
||||||
|
[Timing] (Rank 24) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 24) Exchange : 40 [msec]
|
||||||
|
[Timing] (Rank 24) Min-Max : 15 [msec]
|
||||||
|
[Timing] (Rank 24) Elbow-Sort: 23 [msec]
|
||||||
|
[Timing] (Rank 12) Total : 135 [msec]
|
||||||
|
[Timing] (Rank 12) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 12) Exchange : 55 [msec]
|
||||||
|
[Timing] (Rank 12) Min-Max : 15 [msec]
|
||||||
|
[Timing] (Rank 12) Elbow-Sort: 23 [msec]
|
||||||
|
[Timing] (Rank 2) Total : 139 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 63 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 11 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 23 [msec]
|
||||||
|
[Timing] (Rank 21) Total : 114 [msec]
|
||||||
|
[Timing] (Rank 21) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 21) Exchange : 45 [msec]
|
||||||
|
[Timing] (Rank 21) Min-Max : 11 [msec]
|
||||||
|
[Timing] (Rank 21) Elbow-Sort: 23 [msec]
|
||||||
|
[Timing] (Rank 18) Total : 116 [msec]
|
||||||
|
[Timing] (Rank 18) Full-Sort : 21 [msec]
|
||||||
|
[Timing] (Rank 18) Exchange : 37 [msec]
|
||||||
|
[Timing] (Rank 18) Min-Max : 15 [msec]
|
||||||
|
[Timing] (Rank 18) Elbow-Sort: 23 [msec]
|
||||||
|
[Timing] (Rank 20) Total : 113 [msec]
|
||||||
|
[Timing] (Rank 20) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 20) Exchange : 43 [msec]
|
||||||
|
[Timing] (Rank 20) Min-Max : 11 [msec]
|
||||||
|
[Timing] (Rank 20) Elbow-Sort: 23 [msec]
|
||||||
|
[Timing] (Rank 22) Total : 114 [msec]
|
||||||
|
[Timing] (Rank 22) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 22) Exchange : 40 [msec]
|
||||||
|
[Timing] (Rank 22) Min-Max : 14 [msec]
|
||||||
|
[Timing] (Rank 22) Elbow-Sort: 22 [msec]
|
||||||
|
[Timing] (Rank 23) Total : 115 [msec]
|
||||||
|
[Timing] (Rank 23) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 23) Exchange : 44 [msec]
|
||||||
|
[Timing] (Rank 23) Min-Max : 12 [msec]
|
||||||
|
[Timing] (Rank 23) Elbow-Sort: 23 [msec]
|
||||||
|
[Timing] (Rank 17) Total : 115 [msec]
|
||||||
|
[Timing] (Rank 17) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 17) Exchange : 34 [msec]
|
||||||
|
[Timing] (Rank 17) Min-Max : 16 [msec]
|
||||||
|
[Timing] (Rank 17) Elbow-Sort: 23 [msec]
|
||||||
|
[Timing] (Rank 16) Total : 116 [msec]
|
||||||
|
[Timing] (Rank 16) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 16) Exchange : 46 [msec]
|
||||||
|
[Timing] (Rank 16) Min-Max : 11 [msec]
|
||||||
|
[Timing] (Rank 16) Elbow-Sort: 23 [msec]
|
||||||
|
[Timing] (Rank 29) Total : 118 [msec]
|
||||||
|
[Timing] (Rank 29) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 29) Exchange : 52 [msec]
|
||||||
|
[Timing] (Rank 29) Min-Max : 10 [msec]
|
||||||
|
[Timing] (Rank 29) Elbow-Sort: 22 [msec]
|
||||||
|
[Timing] (Rank 8) Total : 138 [msec]
|
||||||
|
[Timing] (Rank 8) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 8) Exchange : 69 [msec]
|
||||||
|
[Timing] (Rank 8) Min-Max : 10 [msec]
|
||||||
|
[Timing] (Rank 8) Elbow-Sort: 23 [msec]
|
||||||
|
[Timing] (Rank 31) Total : 119 [msec]
|
||||||
|
[Timing] (Rank 31) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 31) Exchange : 58 [msec]
|
||||||
|
[Timing] (Rank 31) Min-Max : 7051 [usec]
|
||||||
|
[Timing] (Rank 31) Elbow-Sort: 22 [msec]
|
||||||
|
[Timing] (Rank 26) Total : 119 [msec]
|
||||||
|
[Timing] (Rank 26) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 26) Exchange : 48 [msec]
|
||||||
|
[Timing] (Rank 26) Min-Max : 12 [msec]
|
||||||
|
[Timing] (Rank 26) Elbow-Sort: 23 [msec]
|
||||||
|
[Timing] (Rank 27) Total : 119 [msec]
|
||||||
|
[Timing] (Rank 27) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 27) Exchange : 45 [msec]
|
||||||
|
[Timing] (Rank 27) Min-Max : 13 [msec]
|
||||||
|
[Timing] (Rank 27) Elbow-Sort: 22 [msec]
|
||||||
|
[Timing] (Rank 28) Total : 119 [msec]
|
||||||
|
[Timing] (Rank 28) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 28) Exchange : 40 [msec]
|
||||||
|
[Timing] (Rank 28) Min-Max : 15 [msec]
|
||||||
|
[Timing] (Rank 28) Elbow-Sort: 22 [msec]
|
||||||
|
[Timing] (Rank 14) Total : 135 [msec]
|
||||||
|
[Timing] (Rank 14) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 14) Exchange : 57 [msec]
|
||||||
|
[Timing] (Rank 14) Min-Max : 14 [msec]
|
||||||
|
[Timing] (Rank 14) Elbow-Sort: 23 [msec]
|
||||||
|
[Timing] (Rank 30) Total : 119 [msec]
|
||||||
|
[Timing] (Rank 30) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 30) Exchange : 48 [msec]
|
||||||
|
[Timing] (Rank 30) Min-Max : 12 [msec]
|
||||||
|
[Timing] (Rank 30) Elbow-Sort: 22 [msec]
|
||||||
|
[Timing] (Rank 11) Total : 137 [msec]
|
||||||
|
[Timing] (Rank 11) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 11) Exchange : 65 [msec]
|
||||||
|
[Timing] (Rank 11) Min-Max : 12 [msec]
|
||||||
|
[Timing] (Rank 11) Elbow-Sort: 23 [msec]
|
||||||
|
[Timing] (Rank 25) Total : 119 [msec]
|
||||||
|
[Timing] (Rank 25) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 25) Exchange : 36 [msec]
|
||||||
|
[Timing] (Rank 25) Min-Max : 17 [msec]
|
||||||
|
[Timing] (Rank 25) Elbow-Sort: 23 [msec]
|
||||||
|
[Timing] (Rank 13) Total : 135 [msec]
|
||||||
|
[Timing] (Rank 13) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 13) Exchange : 40 [msec]
|
||||||
|
[Timing] (Rank 13) Min-Max : 32 [msec]
|
||||||
|
[Timing] (Rank 13) Elbow-Sort: 23 [msec]
|
||||||
|
[Timing] (Rank 10) Total : 137 [msec]
|
||||||
|
[Timing] (Rank 10) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 10) Exchange : 69 [msec]
|
||||||
|
[Timing] (Rank 10) Min-Max : 9921 [usec]
|
||||||
|
[Timing] (Rank 10) Elbow-Sort: 23 [msec]
|
||||||
|
[Timing] (Rank 9) Total : 138 [msec]
|
||||||
|
[Timing] (Rank 9) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 9) Exchange : 60 [msec]
|
||||||
|
[Timing] (Rank 9) Min-Max : 14 [msec]
|
||||||
|
[Timing] (Rank 9) Elbow-Sort: 23 [msec]
|
||||||
|
[Timing] (Rank 15) Total : 134 [msec]
|
||||||
|
[Timing] (Rank 15) Full-Sort : 19 [msec]
|
||||||
|
[Timing] (Rank 15) Exchange : 66 [msec]
|
||||||
|
[Timing] (Rank 15) Min-Max : 10 [msec]
|
||||||
|
[Timing] (Rank 15) Elbow-Sort: 23 [msec]
|
||||||
|
[Timing] (Rank 1) Total : 139 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 66 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 11 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 23 [msec]
|
||||||
|
[Timing] (Rank 6) Total : 138 [msec]
|
||||||
|
[Timing] (Rank 6) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 6) Exchange : 59 [msec]
|
||||||
|
[Timing] (Rank 6) Min-Max : 14 [msec]
|
||||||
|
[Timing] (Rank 6) Elbow-Sort: 23 [msec]
|
||||||
|
[Timing] (Rank 7) Total : 136 [msec]
|
||||||
|
[Timing] (Rank 7) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 7) Exchange : 55 [msec]
|
||||||
|
[Timing] (Rank 7) Min-Max : 19 [msec]
|
||||||
|
[Timing] (Rank 7) Elbow-Sort: 23 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 140 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 21 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 74 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 8514 [usec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 24 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 3) Total : 139 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 63 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 13 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 24 [msec]
|
||||||
|
[Timing] (Rank 4) Total : 137 [msec]
|
||||||
|
[Timing] (Rank 4) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 4) Exchange : 66 [msec]
|
||||||
|
[Timing] (Rank 4) Min-Max : 10 [msec]
|
||||||
|
[Timing] (Rank 4) Elbow-Sort: 23 [msec]
|
||||||
|
[Timing] (Rank 5) Total : 136 [msec]
|
||||||
|
[Timing] (Rank 5) Full-Sort : 20 [msec]
|
||||||
|
[Timing] (Rank 5) Exchange : 62 [msec]
|
||||||
|
[Timing] (Rank 5) Min-Max : 10 [msec]
|
||||||
|
[Timing] (Rank 5) Elbow-Sort: 24 [msec]
|
||||||
@@ -0,0 +1,182 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 22) Total : 1016 [msec]
|
||||||
|
[Timing] (Rank 22) Full-Sort : 190 [msec]
|
||||||
|
[Timing] (Rank 22) Exchange : 387 [msec]
|
||||||
|
[Timing] (Rank 22) Min-Max : 114 [msec]
|
||||||
|
[Timing] (Rank 22) Elbow-Sort: 191 [msec]
|
||||||
|
[Timing] (Rank 15) Total : 1056 [msec]
|
||||||
|
[Timing] (Rank 15) Full-Sort : 201 [msec]
|
||||||
|
[Timing] (Rank 15) Exchange : 431 [msec]
|
||||||
|
[Timing] (Rank 15) Min-Max : 114 [msec]
|
||||||
|
[Timing] (Rank 15) Elbow-Sort: 198 [msec]
|
||||||
|
[Timing] (Rank 1) Total : 1050 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 176 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 462 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 82 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 193 [msec]
|
||||||
|
[Timing] (Rank 31) Total : 1026 [msec]
|
||||||
|
[Timing] (Rank 31) Full-Sort : 185 [msec]
|
||||||
|
[Timing] (Rank 31) Exchange : 480 [msec]
|
||||||
|
[Timing] (Rank 31) Min-Max : 75 [msec]
|
||||||
|
[Timing] (Rank 31) Elbow-Sort: 194 [msec]
|
||||||
|
[Timing] (Rank 18) Total : 1022 [msec]
|
||||||
|
[Timing] (Rank 18) Full-Sort : 189 [msec]
|
||||||
|
[Timing] (Rank 18) Exchange : 408 [msec]
|
||||||
|
[Timing] (Rank 18) Min-Max : 104 [msec]
|
||||||
|
[Timing] (Rank 18) Elbow-Sort: 190 [msec]
|
||||||
|
[Timing] (Rank 19) Total : 1025 [msec]
|
||||||
|
[Timing] (Rank 19) Full-Sort : 185 [msec]
|
||||||
|
[Timing] (Rank 19) Exchange : 359 [msec]
|
||||||
|
[Timing] (Rank 19) Min-Max : 128 [msec]
|
||||||
|
[Timing] (Rank 19) Elbow-Sort: 191 [msec]
|
||||||
|
[Timing] (Rank 20) Total : 1009 [msec]
|
||||||
|
[Timing] (Rank 20) Full-Sort : 189 [msec]
|
||||||
|
[Timing] (Rank 20) Exchange : 419 [msec]
|
||||||
|
[Timing] (Rank 20) Min-Max : 90 [msec]
|
||||||
|
[Timing] (Rank 20) Elbow-Sort: 191 [msec]
|
||||||
|
[Timing] (Rank 21) Total : 1010 [msec]
|
||||||
|
[Timing] (Rank 21) Full-Sort : 184 [msec]
|
||||||
|
[Timing] (Rank 21) Exchange : 456 [msec]
|
||||||
|
[Timing] (Rank 21) Min-Max : 74 [msec]
|
||||||
|
[Timing] (Rank 21) Elbow-Sort: 194 [msec]
|
||||||
|
[Timing] (Rank 16) Total : 1022 [msec]
|
||||||
|
[Timing] (Rank 16) Full-Sort : 190 [msec]
|
||||||
|
[Timing] (Rank 16) Exchange : 475 [msec]
|
||||||
|
[Timing] (Rank 16) Min-Max : 74 [msec]
|
||||||
|
[Timing] (Rank 16) Elbow-Sort: 193 [msec]
|
||||||
|
[Timing] (Rank 23) Total : 1015 [msec]
|
||||||
|
[Timing] (Rank 23) Full-Sort : 185 [msec]
|
||||||
|
[Timing] (Rank 23) Exchange : 461 [msec]
|
||||||
|
[Timing] (Rank 23) Min-Max : 83 [msec]
|
||||||
|
[Timing] (Rank 23) Elbow-Sort: 190 [msec]
|
||||||
|
[Timing] (Rank 17) Total : 1022 [msec]
|
||||||
|
[Timing] (Rank 17) Full-Sort : 184 [msec]
|
||||||
|
[Timing] (Rank 17) Exchange : 354 [msec]
|
||||||
|
[Timing] (Rank 17) Min-Max : 123 [msec]
|
||||||
|
[Timing] (Rank 17) Elbow-Sort: 194 [msec]
|
||||||
|
[Timing] (Rank 13) Total : 1051 [msec]
|
||||||
|
[Timing] (Rank 13) Full-Sort : 197 [msec]
|
||||||
|
[Timing] (Rank 13) Exchange : 351 [msec]
|
||||||
|
[Timing] (Rank 13) Min-Max : 152 [msec]
|
||||||
|
[Timing] (Rank 13) Elbow-Sort: 201 [msec]
|
||||||
|
[Timing] (Rank 12) Total : 1050 [msec]
|
||||||
|
[Timing] (Rank 12) Full-Sort : 204 [msec]
|
||||||
|
[Timing] (Rank 12) Exchange : 290 [msec]
|
||||||
|
[Timing] (Rank 12) Min-Max : 184 [msec]
|
||||||
|
[Timing] (Rank 12) Elbow-Sort: 199 [msec]
|
||||||
|
[Timing] (Rank 14) Total : 1058 [msec]
|
||||||
|
[Timing] (Rank 14) Full-Sort : 205 [msec]
|
||||||
|
[Timing] (Rank 14) Exchange : 347 [msec]
|
||||||
|
[Timing] (Rank 14) Min-Max : 156 [msec]
|
||||||
|
[Timing] (Rank 14) Elbow-Sort: 200 [msec]
|
||||||
|
[Timing] (Rank 10) Total : 1056 [msec]
|
||||||
|
[Timing] (Rank 10) Full-Sort : 200 [msec]
|
||||||
|
[Timing] (Rank 10) Exchange : 402 [msec]
|
||||||
|
[Timing] (Rank 10) Min-Max : 126 [msec]
|
||||||
|
[Timing] (Rank 10) Elbow-Sort: 201 [msec]
|
||||||
|
[Timing] (Rank 9) Total : 1057 [msec]
|
||||||
|
[Timing] (Rank 9) Full-Sort : 189 [msec]
|
||||||
|
[Timing] (Rank 9) Exchange : 335 [msec]
|
||||||
|
[Timing] (Rank 9) Min-Max : 161 [msec]
|
||||||
|
[Timing] (Rank 9) Elbow-Sort: 206 [msec]
|
||||||
|
[Timing] (Rank 11) Total : 1055 [msec]
|
||||||
|
[Timing] (Rank 11) Full-Sort : 199 [msec]
|
||||||
|
[Timing] (Rank 11) Exchange : 386 [msec]
|
||||||
|
[Timing] (Rank 11) Min-Max : 134 [msec]
|
||||||
|
[Timing] (Rank 11) Elbow-Sort: 201 [msec]
|
||||||
|
[Timing] (Rank 8) Total : 1057 [msec]
|
||||||
|
[Timing] (Rank 8) Full-Sort : 199 [msec]
|
||||||
|
[Timing] (Rank 8) Exchange : 358 [msec]
|
||||||
|
[Timing] (Rank 8) Min-Max : 152 [msec]
|
||||||
|
[Timing] (Rank 8) Elbow-Sort: 209 [msec]
|
||||||
|
[Timing] (Rank 2) Total : 1048 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 181 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 470 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 75 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 194 [msec]
|
||||||
|
[Timing] (Rank 5) Total : 1036 [msec]
|
||||||
|
[Timing] (Rank 5) Full-Sort : 175 [msec]
|
||||||
|
[Timing] (Rank 5) Exchange : 439 [msec]
|
||||||
|
[Timing] (Rank 5) Min-Max : 82 [msec]
|
||||||
|
[Timing] (Rank 5) Elbow-Sort: 197 [msec]
|
||||||
|
[Timing] (Rank 6) Total : 1043 [msec]
|
||||||
|
[Timing] (Rank 6) Full-Sort : 180 [msec]
|
||||||
|
[Timing] (Rank 6) Exchange : 404 [msec]
|
||||||
|
[Timing] (Rank 6) Min-Max : 105 [msec]
|
||||||
|
[Timing] (Rank 6) Elbow-Sort: 194 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 1050 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 181 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 542 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 52 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 198 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 3) Total : 1049 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 175 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 438 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 97 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 193 [msec]
|
||||||
|
[Timing] (Rank 4) Total : 1035 [msec]
|
||||||
|
[Timing] (Rank 4) Full-Sort : 181 [msec]
|
||||||
|
[Timing] (Rank 4) Exchange : 455 [msec]
|
||||||
|
[Timing] (Rank 4) Min-Max : 82 [msec]
|
||||||
|
[Timing] (Rank 4) Elbow-Sort: 192 [msec]
|
||||||
|
[Timing] (Rank 7) Total : 1041 [msec]
|
||||||
|
[Timing] (Rank 7) Full-Sort : 176 [msec]
|
||||||
|
[Timing] (Rank 7) Exchange : 441 [msec]
|
||||||
|
[Timing] (Rank 7) Min-Max : 92 [msec]
|
||||||
|
[Timing] (Rank 7) Elbow-Sort: 193 [msec]
|
||||||
|
[Timing] (Rank 24) Total : 1021 [msec]
|
||||||
|
[Timing] (Rank 24) Full-Sort : 190 [msec]
|
||||||
|
[Timing] (Rank 24) Exchange : 353 [msec]
|
||||||
|
[Timing] (Rank 24) Min-Max : 129 [msec]
|
||||||
|
[Timing] (Rank 24) Elbow-Sort: 197 [msec]
|
||||||
|
[Timing] (Rank 29) Total : 1023 [msec]
|
||||||
|
[Timing] (Rank 29) Full-Sort : 186 [msec]
|
||||||
|
[Timing] (Rank 29) Exchange : 425 [msec]
|
||||||
|
[Timing] (Rank 29) Min-Max : 100 [msec]
|
||||||
|
[Timing] (Rank 29) Elbow-Sort: 197 [msec]
|
||||||
|
[Timing] (Rank 28) Total : 1021 [msec]
|
||||||
|
[Timing] (Rank 28) Full-Sort : 191 [msec]
|
||||||
|
[Timing] (Rank 28) Exchange : 346 [msec]
|
||||||
|
[Timing] (Rank 28) Min-Max : 130 [msec]
|
||||||
|
[Timing] (Rank 28) Elbow-Sort: 195 [msec]
|
||||||
|
[Timing] (Rank 27) Total : 1011 [msec]
|
||||||
|
[Timing] (Rank 27) Full-Sort : 183 [msec]
|
||||||
|
[Timing] (Rank 27) Exchange : 377 [msec]
|
||||||
|
[Timing] (Rank 27) Min-Max : 112 [msec]
|
||||||
|
[Timing] (Rank 27) Elbow-Sort: 195 [msec]
|
||||||
|
[Timing] (Rank 25) Total : 1020 [msec]
|
||||||
|
[Timing] (Rank 25) Full-Sort : 184 [msec]
|
||||||
|
[Timing] (Rank 25) Exchange : 320 [msec]
|
||||||
|
[Timing] (Rank 25) Min-Max : 143 [msec]
|
||||||
|
[Timing] (Rank 25) Elbow-Sort: 195 [msec]
|
||||||
|
[Timing] (Rank 30) Total : 1027 [msec]
|
||||||
|
[Timing] (Rank 30) Full-Sort : 191 [msec]
|
||||||
|
[Timing] (Rank 30) Exchange : 388 [msec]
|
||||||
|
[Timing] (Rank 30) Min-Max : 116 [msec]
|
||||||
|
[Timing] (Rank 30) Elbow-Sort: 195 [msec]
|
||||||
|
[Timing] (Rank 26) Total : 1013 [msec]
|
||||||
|
[Timing] (Rank 26) Full-Sort : 190 [msec]
|
||||||
|
[Timing] (Rank 26) Exchange : 381 [msec]
|
||||||
|
[Timing] (Rank 26) Min-Max : 116 [msec]
|
||||||
|
[Timing] (Rank 26) Elbow-Sort: 195 [msec]
|
||||||
@@ -0,0 +1,182 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 26) Total : 4253 [msec]
|
||||||
|
[Timing] (Rank 26) Full-Sort : 811 [msec]
|
||||||
|
[Timing] (Rank 26) Exchange : 1293 [msec]
|
||||||
|
[Timing] (Rank 26) Min-Max : 700 [msec]
|
||||||
|
[Timing] (Rank 26) Elbow-Sort: 801 [msec]
|
||||||
|
[Timing] (Rank 16) Total : 4159 [msec]
|
||||||
|
[Timing] (Rank 16) Full-Sort : 810 [msec]
|
||||||
|
[Timing] (Rank 16) Exchange : 1625 [msec]
|
||||||
|
[Timing] (Rank 16) Min-Max : 446 [msec]
|
||||||
|
[Timing] (Rank 16) Elbow-Sort: 829 [msec]
|
||||||
|
[Timing] (Rank 15) Total : 4164 [msec]
|
||||||
|
[Timing] (Rank 15) Full-Sort : 858 [msec]
|
||||||
|
[Timing] (Rank 15) Exchange : 1602 [msec]
|
||||||
|
[Timing] (Rank 15) Min-Max : 428 [msec]
|
||||||
|
[Timing] (Rank 15) Elbow-Sort: 822 [msec]
|
||||||
|
[Timing] (Rank 2) Total : 4164 [msec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 779 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 1542 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 409 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 803 [msec]
|
||||||
|
[Timing] (Rank 29) Total : 4303 [msec]
|
||||||
|
[Timing] (Rank 29) Full-Sort : 776 [msec]
|
||||||
|
[Timing] (Rank 29) Exchange : 1687 [msec]
|
||||||
|
[Timing] (Rank 29) Min-Max : 526 [msec]
|
||||||
|
[Timing] (Rank 29) Elbow-Sort: 808 [msec]
|
||||||
|
[Timing] (Rank 30) Total : 4299 [msec]
|
||||||
|
[Timing] (Rank 30) Full-Sort : 802 [msec]
|
||||||
|
[Timing] (Rank 30) Exchange : 1498 [msec]
|
||||||
|
[Timing] (Rank 30) Min-Max : 639 [msec]
|
||||||
|
[Timing] (Rank 30) Elbow-Sort: 800 [msec]
|
||||||
|
[Timing] (Rank 25) Total : 4260 [msec]
|
||||||
|
[Timing] (Rank 25) Full-Sort : 769 [msec]
|
||||||
|
[Timing] (Rank 25) Exchange : 1216 [msec]
|
||||||
|
[Timing] (Rank 25) Min-Max : 752 [msec]
|
||||||
|
[Timing] (Rank 25) Elbow-Sort: 799 [msec]
|
||||||
|
[Timing] (Rank 31) Total : 4299 [msec]
|
||||||
|
[Timing] (Rank 31) Full-Sort : 786 [msec]
|
||||||
|
[Timing] (Rank 31) Exchange : 1945 [msec]
|
||||||
|
[Timing] (Rank 31) Min-Max : 402 [msec]
|
||||||
|
[Timing] (Rank 31) Elbow-Sort: 797 [msec]
|
||||||
|
[Timing] (Rank 27) Total : 4252 [msec]
|
||||||
|
[Timing] (Rank 27) Full-Sort : 774 [msec]
|
||||||
|
[Timing] (Rank 27) Exchange : 1505 [msec]
|
||||||
|
[Timing] (Rank 27) Min-Max : 592 [msec]
|
||||||
|
[Timing] (Rank 27) Elbow-Sort: 801 [msec]
|
||||||
|
[Timing] (Rank 24) Total : 4271 [msec]
|
||||||
|
[Timing] (Rank 24) Full-Sort : 800 [msec]
|
||||||
|
[Timing] (Rank 24) Exchange : 1205 [msec]
|
||||||
|
[Timing] (Rank 24) Min-Max : 759 [msec]
|
||||||
|
[Timing] (Rank 24) Elbow-Sort: 805 [msec]
|
||||||
|
[Timing] (Rank 28) Total : 4300 [msec]
|
||||||
|
[Timing] (Rank 28) Full-Sort : 804 [msec]
|
||||||
|
[Timing] (Rank 28) Exchange : 1322 [msec]
|
||||||
|
[Timing] (Rank 28) Min-Max : 712 [msec]
|
||||||
|
[Timing] (Rank 28) Elbow-Sort: 806 [msec]
|
||||||
|
[Timing] (Rank 23) Total : 4221 [msec]
|
||||||
|
[Timing] (Rank 23) Full-Sort : 767 [msec]
|
||||||
|
[Timing] (Rank 23) Exchange : 1632 [msec]
|
||||||
|
[Timing] (Rank 23) Min-Max : 495 [msec]
|
||||||
|
[Timing] (Rank 23) Elbow-Sort: 797 [msec]
|
||||||
|
[Timing] (Rank 20) Total : 4245 [msec]
|
||||||
|
[Timing] (Rank 20) Full-Sort : 797 [msec]
|
||||||
|
[Timing] (Rank 20) Exchange : 1688 [msec]
|
||||||
|
[Timing] (Rank 20) Min-Max : 461 [msec]
|
||||||
|
[Timing] (Rank 20) Elbow-Sort: 810 [msec]
|
||||||
|
[Timing] (Rank 19) Total : 4197 [msec]
|
||||||
|
[Timing] (Rank 19) Full-Sort : 787 [msec]
|
||||||
|
[Timing] (Rank 19) Exchange : 1309 [msec]
|
||||||
|
[Timing] (Rank 19) Min-Max : 628 [msec]
|
||||||
|
[Timing] (Rank 19) Elbow-Sort: 815 [msec]
|
||||||
|
[Timing] (Rank 21) Total : 4242 [msec]
|
||||||
|
[Timing] (Rank 21) Full-Sort : 770 [msec]
|
||||||
|
[Timing] (Rank 21) Exchange : 1802 [msec]
|
||||||
|
[Timing] (Rank 21) Min-Max : 410 [msec]
|
||||||
|
[Timing] (Rank 21) Elbow-Sort: 808 [msec]
|
||||||
|
[Timing] (Rank 22) Total : 4223 [msec]
|
||||||
|
[Timing] (Rank 22) Full-Sort : 796 [msec]
|
||||||
|
[Timing] (Rank 22) Exchange : 1516 [msec]
|
||||||
|
[Timing] (Rank 22) Min-Max : 557 [msec]
|
||||||
|
[Timing] (Rank 22) Elbow-Sort: 801 [msec]
|
||||||
|
[Timing] (Rank 18) Total : 4192 [msec]
|
||||||
|
[Timing] (Rank 18) Full-Sort : 796 [msec]
|
||||||
|
[Timing] (Rank 18) Exchange : 1430 [msec]
|
||||||
|
[Timing] (Rank 18) Min-Max : 582 [msec]
|
||||||
|
[Timing] (Rank 18) Elbow-Sort: 804 [msec]
|
||||||
|
[Timing] (Rank 17) Total : 4226 [msec]
|
||||||
|
[Timing] (Rank 17) Full-Sort : 738 [msec]
|
||||||
|
[Timing] (Rank 17) Exchange : 1449 [msec]
|
||||||
|
[Timing] (Rank 17) Min-Max : 590 [msec]
|
||||||
|
[Timing] (Rank 17) Elbow-Sort: 807 [msec]
|
||||||
|
[Timing] (Rank 10) Total : 4159 [msec]
|
||||||
|
[Timing] (Rank 10) Full-Sort : 857 [msec]
|
||||||
|
[Timing] (Rank 10) Exchange : 1600 [msec]
|
||||||
|
[Timing] (Rank 10) Min-Max : 427 [msec]
|
||||||
|
[Timing] (Rank 10) Elbow-Sort: 827 [msec]
|
||||||
|
[Timing] (Rank 11) Total : 4167 [msec]
|
||||||
|
[Timing] (Rank 11) Full-Sort : 811 [msec]
|
||||||
|
[Timing] (Rank 11) Exchange : 1370 [msec]
|
||||||
|
[Timing] (Rank 11) Min-Max : 551 [msec]
|
||||||
|
[Timing] (Rank 11) Elbow-Sort: 840 [msec]
|
||||||
|
[Timing] (Rank 13) Total : 4145 [msec]
|
||||||
|
[Timing] (Rank 13) Full-Sort : 855 [msec]
|
||||||
|
[Timing] (Rank 13) Exchange : 1334 [msec]
|
||||||
|
[Timing] (Rank 13) Min-Max : 564 [msec]
|
||||||
|
[Timing] (Rank 13) Elbow-Sort: 822 [msec]
|
||||||
|
[Timing] (Rank 14) Total : 4156 [msec]
|
||||||
|
[Timing] (Rank 14) Full-Sort : 881 [msec]
|
||||||
|
[Timing] (Rank 14) Exchange : 1340 [msec]
|
||||||
|
[Timing] (Rank 14) Min-Max : 561 [msec]
|
||||||
|
[Timing] (Rank 14) Elbow-Sort: 819 [msec]
|
||||||
|
[Timing] (Rank 9) Total : 4160 [msec]
|
||||||
|
[Timing] (Rank 9) Full-Sort : 822 [msec]
|
||||||
|
[Timing] (Rank 9) Exchange : 1255 [msec]
|
||||||
|
[Timing] (Rank 9) Min-Max : 603 [msec]
|
||||||
|
[Timing] (Rank 9) Elbow-Sort: 835 [msec]
|
||||||
|
[Timing] (Rank 8) Total : 4163 [msec]
|
||||||
|
[Timing] (Rank 8) Full-Sort : 853 [msec]
|
||||||
|
[Timing] (Rank 8) Exchange : 1378 [msec]
|
||||||
|
[Timing] (Rank 8) Min-Max : 559 [msec]
|
||||||
|
[Timing] (Rank 8) Elbow-Sort: 825 [msec]
|
||||||
|
[Timing] (Rank 12) Total : 4142 [msec]
|
||||||
|
[Timing] (Rank 12) Full-Sort : 885 [msec]
|
||||||
|
[Timing] (Rank 12) Exchange : 1047 [msec]
|
||||||
|
[Timing] (Rank 12) Min-Max : 704 [msec]
|
||||||
|
[Timing] (Rank 12) Elbow-Sort: 813 [msec]
|
||||||
|
[Timing] (Rank 7) Total : 4136 [msec]
|
||||||
|
[Timing] (Rank 7) Full-Sort : 749 [msec]
|
||||||
|
[Timing] (Rank 7) Exchange : 1577 [msec]
|
||||||
|
[Timing] (Rank 7) Min-Max : 448 [msec]
|
||||||
|
[Timing] (Rank 7) Elbow-Sort: 787 [msec]
|
||||||
|
[Timing] (Rank 6) Total : 4136 [msec]
|
||||||
|
[Timing] (Rank 6) Full-Sort : 786 [msec]
|
||||||
|
[Timing] (Rank 6) Exchange : 1429 [msec]
|
||||||
|
[Timing] (Rank 6) Min-Max : 481 [msec]
|
||||||
|
[Timing] (Rank 6) Elbow-Sort: 784 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 4164 [msec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 758 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 1502 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 473 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 804 [msec]
|
||||||
|
[Timing] (Rank 5) Total : 4118 [msec]
|
||||||
|
[Timing] (Rank 5) Full-Sort : 759 [msec]
|
||||||
|
[Timing] (Rank 5) Exchange : 1570 [msec]
|
||||||
|
[Timing] (Rank 5) Min-Max : 369 [msec]
|
||||||
|
[Timing] (Rank 5) Elbow-Sort: 818 [msec]
|
||||||
|
[Timing] (Rank 4) Total : 4116 [msec]
|
||||||
|
[Timing] (Rank 4) Full-Sort : 784 [msec]
|
||||||
|
[Timing] (Rank 4) Exchange : 1640 [msec]
|
||||||
|
[Timing] (Rank 4) Min-Max : 374 [msec]
|
||||||
|
[Timing] (Rank 4) Elbow-Sort: 805 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 4174 [msec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 785 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 1895 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 308 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 808 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 1) Total : 4159 [msec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 751 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 1687 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 374 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 793 [msec]
|
||||||
@@ -0,0 +1,182 @@
|
|||||||
|
Autoloading hwloc/2.2.0
|
||||||
|
Autoloading numactl/2.0.14
|
||||||
|
Autoloading zlib/1.2.11
|
||||||
|
Autoloading slurm/17-11-8-1
|
||||||
|
Autoloading ucx/1.9.0
|
||||||
|
Autoloading rdma-core/32.0
|
||||||
|
Autoloading libnl/3.3.0
|
||||||
|
Autoloading singularity/3.6.4
|
||||||
|
Autoloading go/1.15.2
|
||||||
|
Autoloading libgpg-error/1.37
|
||||||
|
Autoloading libseccomp/2.3.3
|
||||||
|
Autoloading squashfs/4.4
|
||||||
|
Autoloading shadow/4.7
|
||||||
|
Autoloading cryptsetup/2.3.1
|
||||||
|
Autoloading lvm2/2.03.05
|
||||||
|
Autoloading popt/1.16
|
||||||
|
Autoloading json-c/0.13.1
|
||||||
|
Autoloading util-linux/2.35.1
|
||||||
|
Autoloading python/3.8.6
|
||||||
|
Autoloading pkgconf/1.7.3
|
||||||
|
Autoloading openssl/1.1.1h
|
||||||
|
[Timing] (Rank 24) Total : 15 [sec]
|
||||||
|
[Timing] (Rank 24) Full-Sort : 3662 [msec]
|
||||||
|
[Timing] (Rank 24) Exchange : 5222 [msec]
|
||||||
|
[Timing] (Rank 24) Min-Max : 1710 [msec]
|
||||||
|
[Timing] (Rank 24) Elbow-Sort: 3183 [msec]
|
||||||
|
[Timing] (Rank 21) Total : 15 [sec]
|
||||||
|
[Timing] (Rank 21) Full-Sort : 3437 [msec]
|
||||||
|
[Timing] (Rank 21) Exchange : 6362 [msec]
|
||||||
|
[Timing] (Rank 21) Min-Max : 1139 [msec]
|
||||||
|
[Timing] (Rank 21) Elbow-Sort: 3176 [msec]
|
||||||
|
[Timing] (Rank 6) Total : 16 [sec]
|
||||||
|
[Timing] (Rank 6) Full-Sort : 3427 [msec]
|
||||||
|
[Timing] (Rank 6) Exchange : 6034 [msec]
|
||||||
|
[Timing] (Rank 6) Min-Max : 1677 [msec]
|
||||||
|
[Timing] (Rank 6) Elbow-Sort: 3131 [msec]
|
||||||
|
[Timing] (Rank 12) Total : 17 [sec]
|
||||||
|
[Timing] (Rank 12) Full-Sort : 3758 [msec]
|
||||||
|
[Timing] (Rank 12) Exchange : 4542 [msec]
|
||||||
|
[Timing] (Rank 12) Min-Max : 2874 [msec]
|
||||||
|
[Timing] (Rank 12) Elbow-Sort: 3237 [msec]
|
||||||
|
[Timing] (Rank 23) Total : 15 [sec]
|
||||||
|
[Timing] (Rank 23) Full-Sort : 3440 [msec]
|
||||||
|
[Timing] (Rank 23) Exchange : 6227 [msec]
|
||||||
|
[Timing] (Rank 23) Min-Max : 1319 [msec]
|
||||||
|
[Timing] (Rank 23) Elbow-Sort: 3079 [msec]
|
||||||
|
[Timing] (Rank 19) Total : 15 [sec]
|
||||||
|
[Timing] (Rank 19) Full-Sort : 3359 [msec]
|
||||||
|
[Timing] (Rank 19) Exchange : 4881 [msec]
|
||||||
|
[Timing] (Rank 19) Min-Max : 2006 [msec]
|
||||||
|
[Timing] (Rank 19) Elbow-Sort: 3142 [msec]
|
||||||
|
[Timing] (Rank 16) Total : 15 [sec]
|
||||||
|
[Timing] (Rank 16) Full-Sort : 3485 [msec]
|
||||||
|
[Timing] (Rank 16) Exchange : 5827 [msec]
|
||||||
|
[Timing] (Rank 16) Min-Max : 1602 [msec]
|
||||||
|
[Timing] (Rank 16) Elbow-Sort: 3121 [msec]
|
||||||
|
[Timing] (Rank 31) Total : 16 [sec]
|
||||||
|
[Timing] (Rank 31) Full-Sort : 3397 [msec]
|
||||||
|
[Timing] (Rank 31) Exchange : 6894 [msec]
|
||||||
|
[Timing] (Rank 31) Min-Max : 1175 [msec]
|
||||||
|
[Timing] (Rank 31) Elbow-Sort: 3156 [msec]
|
||||||
|
[Timing] (Rank 22) Total : 15 [sec]
|
||||||
|
[Timing] (Rank 22) Full-Sort : 3622 [msec]
|
||||||
|
[Timing] (Rank 22) Exchange : 5212 [msec]
|
||||||
|
[Timing] (Rank 22) Min-Max : 1766 [msec]
|
||||||
|
[Timing] (Rank 22) Elbow-Sort: 3110 [msec]
|
||||||
|
[Timing] (Rank 25) Total : 15 [sec]
|
||||||
|
[Timing] (Rank 25) Full-Sort : 3531 [msec]
|
||||||
|
[Timing] (Rank 25) Exchange : 4401 [msec]
|
||||||
|
[Timing] (Rank 25) Min-Max : 2085 [msec]
|
||||||
|
[Timing] (Rank 25) Elbow-Sort: 3215 [msec]
|
||||||
|
[Timing] (Rank 29) Total : 16 [sec]
|
||||||
|
[Timing] (Rank 29) Full-Sort : 3557 [msec]
|
||||||
|
[Timing] (Rank 29) Exchange : 5822 [msec]
|
||||||
|
[Timing] (Rank 29) Min-Max : 1590 [msec]
|
||||||
|
[Timing] (Rank 29) Elbow-Sort: 3172 [msec]
|
||||||
|
[Timing] (Rank 26) Total : 15 [sec]
|
||||||
|
[Timing] (Rank 26) Full-Sort : 3617 [msec]
|
||||||
|
[Timing] (Rank 26) Exchange : 5646 [msec]
|
||||||
|
[Timing] (Rank 26) Min-Max : 1539 [msec]
|
||||||
|
[Timing] (Rank 26) Elbow-Sort: 3179 [msec]
|
||||||
|
[Timing] (Rank 17) Total : 15 [sec]
|
||||||
|
[Timing] (Rank 17) Full-Sort : 3358 [msec]
|
||||||
|
[Timing] (Rank 17) Exchange : 4867 [msec]
|
||||||
|
[Timing] (Rank 17) Min-Max : 1963 [msec]
|
||||||
|
[Timing] (Rank 17) Elbow-Sort: 3159 [msec]
|
||||||
|
[Timing] (Rank 27) Total : 15 [sec]
|
||||||
|
[Timing] (Rank 27) Full-Sort : 3518 [msec]
|
||||||
|
[Timing] (Rank 27) Exchange : 5303 [msec]
|
||||||
|
[Timing] (Rank 27) Min-Max : 1668 [msec]
|
||||||
|
[Timing] (Rank 27) Elbow-Sort: 3206 [msec]
|
||||||
|
[Timing] (Rank 28) Total : 16 [sec]
|
||||||
|
[Timing] (Rank 28) Full-Sort : 3642 [msec]
|
||||||
|
[Timing] (Rank 28) Exchange : 5166 [msec]
|
||||||
|
[Timing] (Rank 28) Min-Max : 1870 [msec]
|
||||||
|
[Timing] (Rank 28) Elbow-Sort: 3123 [msec]
|
||||||
|
[Timing] (Rank 30) Total : 15 [sec]
|
||||||
|
[Timing] (Rank 30) Full-Sort : 3565 [msec]
|
||||||
|
[Timing] (Rank 30) Exchange : 5366 [msec]
|
||||||
|
[Timing] (Rank 30) Min-Max : 1740 [msec]
|
||||||
|
[Timing] (Rank 30) Elbow-Sort: 3137 [msec]
|
||||||
|
[Timing] (Rank 18) Total : 15 [sec]
|
||||||
|
[Timing] (Rank 18) Full-Sort : 3505 [msec]
|
||||||
|
[Timing] (Rank 18) Exchange : 4655 [msec]
|
||||||
|
[Timing] (Rank 18) Min-Max : 2021 [msec]
|
||||||
|
[Timing] (Rank 18) Elbow-Sort: 3106 [msec]
|
||||||
|
[Timing] (Rank 20) Total : 15 [sec]
|
||||||
|
[Timing] (Rank 20) Full-Sort : 3553 [msec]
|
||||||
|
[Timing] (Rank 20) Exchange : 6075 [msec]
|
||||||
|
[Timing] (Rank 20) Min-Max : 1303 [msec]
|
||||||
|
[Timing] (Rank 20) Elbow-Sort: 3138 [msec]
|
||||||
|
[Timing] (Rank 2) Total : 16 [sec]
|
||||||
|
[Timing] (Rank 2) Full-Sort : 3405 [msec]
|
||||||
|
[Timing] (Rank 2) Exchange : 7111 [msec]
|
||||||
|
[Timing] (Rank 2) Min-Max : 1209 [msec]
|
||||||
|
[Timing] (Rank 2) Elbow-Sort: 3163 [msec]
|
||||||
|
[Timing] (Rank 7) Total : 16 [sec]
|
||||||
|
[Timing] (Rank 7) Full-Sort : 3290 [msec]
|
||||||
|
[Timing] (Rank 7) Exchange : 6223 [msec]
|
||||||
|
[Timing] (Rank 7) Min-Max : 1668 [msec]
|
||||||
|
[Timing] (Rank 7) Elbow-Sort: 3172 [msec]
|
||||||
|
[Timing] (Rank 4) Total : 16 [sec]
|
||||||
|
[Timing] (Rank 4) Full-Sort : 3425 [msec]
|
||||||
|
[Timing] (Rank 4) Exchange : 6788 [msec]
|
||||||
|
[Timing] (Rank 4) Min-Max : 1339 [msec]
|
||||||
|
[Timing] (Rank 4) Elbow-Sort: 3159 [msec]
|
||||||
|
[Timing] (Rank 3) Total : 16 [sec]
|
||||||
|
[Timing] (Rank 3) Full-Sort : 3308 [msec]
|
||||||
|
[Timing] (Rank 3) Exchange : 6572 [msec]
|
||||||
|
[Timing] (Rank 3) Min-Max : 1545 [msec]
|
||||||
|
[Timing] (Rank 3) Elbow-Sort: 3149 [msec]
|
||||||
|
[Timing] (Rank 5) Total : 16 [sec]
|
||||||
|
[Timing] (Rank 5) Full-Sort : 3255 [msec]
|
||||||
|
[Timing] (Rank 5) Exchange : 6707 [msec]
|
||||||
|
[Timing] (Rank 5) Min-Max : 1333 [msec]
|
||||||
|
[Timing] (Rank 5) Elbow-Sort: 3202 [msec]
|
||||||
|
[Timing] (Rank 0) Total : 16 [sec]
|
||||||
|
[Timing] (Rank 0) Full-Sort : 3409 [msec]
|
||||||
|
[Timing] (Rank 0) Exchange : 8214 [msec]
|
||||||
|
[Timing] (Rank 0) Min-Max : 848 [msec]
|
||||||
|
[Timing] (Rank 0) Elbow-Sort: 3190 [msec]
|
||||||
|
Results validation ...[32m [PASS] [0m
|
||||||
|
[Timing] (Rank 1) Total : 16 [sec]
|
||||||
|
[Timing] (Rank 1) Full-Sort : 3296 [msec]
|
||||||
|
[Timing] (Rank 1) Exchange : 7188 [msec]
|
||||||
|
[Timing] (Rank 1) Min-Max : 1179 [msec]
|
||||||
|
[Timing] (Rank 1) Elbow-Sort: 3202 [msec]
|
||||||
|
[Timing] (Rank 13) Total : 17 [sec]
|
||||||
|
[Timing] (Rank 13) Full-Sort : 3601 [msec]
|
||||||
|
[Timing] (Rank 13) Exchange : 5231 [msec]
|
||||||
|
[Timing] (Rank 13) Min-Max : 2524 [msec]
|
||||||
|
[Timing] (Rank 13) Elbow-Sort: 3299 [msec]
|
||||||
|
[Timing] (Rank 15) Total : 17 [sec]
|
||||||
|
[Timing] (Rank 15) Full-Sort : 3676 [msec]
|
||||||
|
[Timing] (Rank 15) Exchange : 6332 [msec]
|
||||||
|
[Timing] (Rank 15) Min-Max : 2030 [msec]
|
||||||
|
[Timing] (Rank 15) Elbow-Sort: 3259 [msec]
|
||||||
|
[Timing] (Rank 10) Total : 17 [sec]
|
||||||
|
[Timing] (Rank 10) Full-Sort : 3717 [msec]
|
||||||
|
[Timing] (Rank 10) Exchange : 7030 [msec]
|
||||||
|
[Timing] (Rank 10) Min-Max : 1612 [msec]
|
||||||
|
[Timing] (Rank 10) Elbow-Sort: 3280 [msec]
|
||||||
|
[Timing] (Rank 14) Total : 17 [sec]
|
||||||
|
[Timing] (Rank 14) Full-Sort : 3757 [msec]
|
||||||
|
[Timing] (Rank 14) Exchange : 5315 [msec]
|
||||||
|
[Timing] (Rank 14) Min-Max : 2537 [msec]
|
||||||
|
[Timing] (Rank 14) Elbow-Sort: 3240 [msec]
|
||||||
|
[Timing] (Rank 9) Total : 17 [sec]
|
||||||
|
[Timing] (Rank 9) Full-Sort : 3562 [msec]
|
||||||
|
[Timing] (Rank 9) Exchange : 5319 [msec]
|
||||||
|
[Timing] (Rank 9) Min-Max : 2452 [msec]
|
||||||
|
[Timing] (Rank 9) Elbow-Sort: 3323 [msec]
|
||||||
|
[Timing] (Rank 8) Total : 17 [sec]
|
||||||
|
[Timing] (Rank 8) Full-Sort : 3736 [msec]
|
||||||
|
[Timing] (Rank 8) Exchange : 6411 [msec]
|
||||||
|
[Timing] (Rank 8) Min-Max : 1959 [msec]
|
||||||
|
[Timing] (Rank 8) Elbow-Sort: 3253 [msec]
|
||||||
|
[Timing] (Rank 11) Total : 17 [sec]
|
||||||
|
[Timing] (Rank 11) Full-Sort : 3521 [msec]
|
||||||
|
[Timing] (Rank 11) Exchange : 6116 [msec]
|
||||||
|
[Timing] (Rank 11) Min-Max : 2118 [msec]
|
||||||
|
[Timing] (Rank 11) Elbow-Sort: 3325 [msec]
|
||||||
Executable
+4
@@ -0,0 +1,4 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
awk -F: '{print $2}' | sort -n | awk 'NR==1 {print "Min:", $1, $2} END {print "Max:", $1, $2}'
|
||||||
|
|
||||||
Executable
+15
@@ -0,0 +1,15 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
if [[ $# -lt 2 ]]; then
|
||||||
|
echo "Error: You must pass the directory with the scripts and partition"
|
||||||
|
echo "you want to run to "
|
||||||
|
echo "example $ enqueueAll.sh ./hpc/Q23 batch"
|
||||||
|
echo "example $ enqueueAll.sh ./hpc/Q20 rome"
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Enqueue
|
||||||
|
for file in $(ls $1); do
|
||||||
|
echo "sbatch -p $2 --qos=small $file";
|
||||||
|
eval "sbatch -p $2 --qos=small $file";
|
||||||
|
done
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
Parallel & Distributed Computer Systems HW2
|
||||||
|
|
||||||
|
December 6, 2024
|
||||||
|
|
||||||
|
Write a distributed program that sorts $N$ integers in ascending order, using MPI. The inter-process communications should be defined by the Bitonic sort algorithm as presented in our class notes.
|
||||||
|
|
||||||
|
The program must perform the following tasks:
|
||||||
|
|
||||||
|
- The user specifies two positive integers $q$ and $p$.
|
||||||
|
|
||||||
|
- Start $2^p$ processes with an array of $2^q$ random integers is each processes.
|
||||||
|
|
||||||
|
- Sort all $N = \left ( 2^{(q + p)} \right)$ elements int ascending order.
|
||||||
|
|
||||||
|
- Check the correctness of the final result.
|
||||||
|
|
||||||
|
Your implementation should be based on the following steps:
|
||||||
|
- Start p processes, each process gets n/p data and sorts (ascending or descending depending on the process id) them using sort from any library. Use two buffers, to sort from one to the other, to send from one and receive in the other.
|
||||||
|
- Repeat $O((log_2(p))^2)$:
|
||||||
|
* Exchange data with the corresponding partner and keep the min or max elements, depending on the process id and phase of the computation
|
||||||
|
* Sort locally the bitonic sequence using a modification of merge sort, starting from the "elbow" of the bitonic.
|
||||||
|
|
||||||
|
You may use the C standard library function stdlib qsort() to check the correctness of your results and as the initial local sorting routine for each process.
|
||||||
|
|
||||||
|
You must deliver:
|
||||||
|
- A report (about $3-4$ pages) that describes your parallel algorithm and implementation.
|
||||||
|
|
||||||
|
- Your comments on the speed of your parallel program compared to the serial sort, after trying you program on aristotelis for $p = [1:7]$ and $q = [20:27]$.
|
||||||
|
|
||||||
|
- The source code of your program uploaded online.
|
||||||
|
|
||||||
|
Ethics: If you use code found on the web or by an LLM, you should mention your source and the changes you made. You may work in pairs; both partners must submit a single report with both names.
|
||||||
|
Deadline: 7 January, $2025$.
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=1
|
||||||
|
#SBATCH --ntasks-per-node=2
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=1:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 20 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=1
|
||||||
|
#SBATCH --ntasks-per-node=2
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=1:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 23 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=1
|
||||||
|
#SBATCH --ntasks-per-node=2
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=1:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 25 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=1
|
||||||
|
#SBATCH --ntasks-per-node=2
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=1:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 27 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=1
|
||||||
|
#SBATCH --ntasks-per-node=4
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=1:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 20 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=1
|
||||||
|
#SBATCH --ntasks-per-node=4
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=1:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 23 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=1
|
||||||
|
#SBATCH --ntasks-per-node=4
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=1:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 25 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=1
|
||||||
|
#SBATCH --ntasks-per-node=4
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=1:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 27 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=2
|
||||||
|
#SBATCH --ntasks-per-node=4
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=2:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 20 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=2
|
||||||
|
#SBATCH --ntasks-per-node=4
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=2:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 23 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=2
|
||||||
|
#SBATCH --ntasks-per-node=4
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=2:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 25 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=2
|
||||||
|
#SBATCH --ntasks-per-node=4
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=2:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 27 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=4
|
||||||
|
#SBATCH --ntasks-per-node=16
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=5:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 20 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=4
|
||||||
|
#SBATCH --ntasks-per-node=16
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=5:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 23 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=4
|
||||||
|
#SBATCH --ntasks-per-node=16
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=5:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 25 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=4
|
||||||
|
#SBATCH --ntasks-per-node=16
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=5:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 27 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=4
|
||||||
|
#SBATCH --ntasks-per-node=32
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=5:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 20 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=4
|
||||||
|
#SBATCH --ntasks-per-node=32
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=5:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 23 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=4
|
||||||
|
#SBATCH --ntasks-per-node=32
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=5:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 25 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=4
|
||||||
|
#SBATCH --ntasks-per-node=32
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=5:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 27 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=4
|
||||||
|
#SBATCH --ntasks-per-node=4
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=2:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 20 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=4
|
||||||
|
#SBATCH --ntasks-per-node=4
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=2:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 23 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=4
|
||||||
|
#SBATCH --ntasks-per-node=4
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=2:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 25 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=4
|
||||||
|
#SBATCH --ntasks-per-node=4
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=2:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 27 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=4
|
||||||
|
#SBATCH --ntasks-per-node=8
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=2:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 20 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=4
|
||||||
|
#SBATCH --ntasks-per-node=8
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=2:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 23 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=4
|
||||||
|
#SBATCH --ntasks-per-node=8
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=2:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 25 --perf --validation
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
#SBATCH --nodes=4
|
||||||
|
#SBATCH --ntasks-per-node=8
|
||||||
|
#SBATCH --cpus-per-task=4
|
||||||
|
#SBATCH --time=2:00
|
||||||
|
|
||||||
|
# Use this as following
|
||||||
|
# $> sbatch -p batch|rome <this file>
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# First compile in aristotle with
|
||||||
|
# $> module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# $> make -j hpc-build
|
||||||
|
#
|
||||||
|
|
||||||
|
module load gcc/9.2.0 openmpi/4.0.3
|
||||||
|
# Note:
|
||||||
|
# The above versions are matching w/ my system's
|
||||||
|
# versions, thus making compiling/debugging easier.
|
||||||
|
|
||||||
|
# Suppress unused UCX_ROOT warning
|
||||||
|
export UCX_WARN_UNUSED_ENV_VARS=n
|
||||||
|
|
||||||
|
# Suppress CUDA-aware support is disabled warning
|
||||||
|
export OMPI_MCA_opal_warn_on_missing_libcuda=0
|
||||||
|
|
||||||
|
srun ./out-rc3a/distbitonic -q 27 --perf --validation
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
/*!
|
||||||
|
* \file
|
||||||
|
* \brief Build configuration file.
|
||||||
|
*
|
||||||
|
* \author
|
||||||
|
* Christos Choutouridis AEM:8997
|
||||||
|
* <cchoutou@ece.auth.gr>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef CONFIG_H_
|
||||||
|
#define CONFIG_H_
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Defines for different version of the exercise
|
||||||
|
*/
|
||||||
|
#define BITONIC (1)
|
||||||
|
#define BUBBLETONIC (2)
|
||||||
|
|
||||||
|
|
||||||
|
// Fail-safe version selection
|
||||||
|
#if !defined CODE_VERSION
|
||||||
|
#define CODE_VERSION BITONIC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Default Data size (in case -q <N> is not present)
|
||||||
|
#define DEFAULT_DATA_SIZE (1 << 16)
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Value type selection
|
||||||
|
*
|
||||||
|
* We support the following compiler types or the <cstdint> that translate to them:
|
||||||
|
* char - unsigned char
|
||||||
|
* short - unsigned short
|
||||||
|
* int - unsigned int
|
||||||
|
* long - unsigned long
|
||||||
|
* long long - unsigned long long
|
||||||
|
* float
|
||||||
|
* double
|
||||||
|
*/
|
||||||
|
using distValue_t = uint32_t;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Session option for each invocation of the executable
|
||||||
|
*/
|
||||||
|
struct config_t {
|
||||||
|
size_t arraySize{DEFAULT_DATA_SIZE}; //!< The array size of the local data to sort.
|
||||||
|
bool validation{false}; //!< Request a full validation at the end, performed by process rank 0.
|
||||||
|
bool ndebug{false}; //!< Skips debug trap on DEBUG builds.
|
||||||
|
bool perf{false}; //!< Enable performance timing measurements and prints.
|
||||||
|
bool verbose{false}; //!< Flag to enable verbose output to stdout.
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Exported data types
|
||||||
|
*/
|
||||||
|
extern config_t config;
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* CONFIG_H_ */
|
||||||
@@ -0,0 +1,336 @@
|
|||||||
|
/*!
|
||||||
|
* \file
|
||||||
|
* \brief Distributed sort implementation header
|
||||||
|
*
|
||||||
|
* \author
|
||||||
|
* Christos Choutouridis AEM:8997
|
||||||
|
* <cchoutou@ece.auth.gr>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef DISTBITONIC_H_
|
||||||
|
#define DISTBITONIC_H_
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
#include <algorithm>
|
||||||
|
#include <parallel/algorithm>
|
||||||
|
#include <cmath>
|
||||||
|
#include <cstdint>
|
||||||
|
#if !defined DEBUG
|
||||||
|
#define NDEBUG
|
||||||
|
#endif
|
||||||
|
#include <cassert>
|
||||||
|
|
||||||
|
#include "utils.hpp"
|
||||||
|
|
||||||
|
extern Timing TfullSort, Texchange, Tminmax, TelbowSort; // make timers public
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Enumerator for the different versions of the sorting method
|
||||||
|
*/
|
||||||
|
enum class SortMode {
|
||||||
|
Bubbletonic, //!< The v0.5 of the algorithm where we use a bubble-sort like approach
|
||||||
|
Bitonic //!< The v1.0 of the algorithm where we use the bitonic data-exchange approach
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ============================== Sort utilities ==============================
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* The primary function template of ascending(). It is DISABLED since , it is explicitly specialized
|
||||||
|
* for each of the \c SortMode
|
||||||
|
*/
|
||||||
|
template <SortMode Mode> inline bool ascending(mpi_id_t, [[maybe_unused]] size_t) noexcept = delete;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Returns the ascending or descending configuration of the node's sequence based on
|
||||||
|
* the current node (MPI process) and the depth of the sorting network
|
||||||
|
*
|
||||||
|
* @param node [mpi_id_t] The current node (MPI process)
|
||||||
|
* @return [bool] True if we need ascending configuration, false otherwise
|
||||||
|
*/
|
||||||
|
template <> inline
|
||||||
|
bool ascending<SortMode::Bubbletonic>(mpi_id_t node, [[maybe_unused]] size_t depth) noexcept {
|
||||||
|
return (node % 2) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Returns the ascending or descending configuration of the node's sequence based on
|
||||||
|
* the current node (MPI process) and the depth of the sorting network
|
||||||
|
*
|
||||||
|
* @param node [mpi_id_t] The current node (MPI process)
|
||||||
|
* @param depth [size_t] The total depth of the sorting network (same for each step for a given network)
|
||||||
|
* @return [bool] True if we need ascending configuration, false otherwise
|
||||||
|
*/
|
||||||
|
template <> inline
|
||||||
|
bool ascending<SortMode::Bitonic>(mpi_id_t node, size_t depth) noexcept {
|
||||||
|
return !(node & (1 << depth));
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* The primary function template of partner(). It is DISABLED since , it is explicitly specialized
|
||||||
|
* for each of the \c SortMode
|
||||||
|
*/
|
||||||
|
template <SortMode Mode> inline mpi_id_t partner(mpi_id_t, size_t) noexcept = delete;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Returns the node's partner for data exchange during the sorting network iterations
|
||||||
|
* of Bubbletonic
|
||||||
|
*
|
||||||
|
* @param node [mpi_id_t] The current node
|
||||||
|
* @param step [size_t] The step of the sorting network
|
||||||
|
* @return [mpi_id_t] The node id of the partner for data exchange
|
||||||
|
*/
|
||||||
|
template <> inline
|
||||||
|
mpi_id_t partner<SortMode::Bubbletonic>(mpi_id_t node, size_t step) noexcept {
|
||||||
|
//return (node % 2 == step % 2) ? node + 1 : node - 1;
|
||||||
|
return (((node+step) % 2) == 0) ? node + 1 : node - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Returns the node's partner for data exchange during the sorting network iterations
|
||||||
|
* of Bitonic
|
||||||
|
*
|
||||||
|
* @param node [mpi_id_t] The current node
|
||||||
|
* @param step [size_t] The step of the sorting network
|
||||||
|
* @return [mpi_id_t] The node id of the partner for data exchange
|
||||||
|
*/
|
||||||
|
template <> inline
|
||||||
|
mpi_id_t partner<SortMode::Bitonic>(mpi_id_t node, size_t step) noexcept {
|
||||||
|
return (node ^ (1 << step));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* The primary function template of keepSmall(). It is DISABLED since , it is explicitly specialized
|
||||||
|
* for each of the \c SortMode
|
||||||
|
*/
|
||||||
|
template<SortMode Mode> inline bool keepSmall(mpi_id_t, mpi_id_t, [[maybe_unused]] size_t) = delete;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Predicate to check if a node keeps the small numbers during the bubbletonic sort network exchange.
|
||||||
|
*
|
||||||
|
* @param node [mpi_id_t] The node for which we check
|
||||||
|
* @param partner [mpi_id_t] The partner of the data exchange
|
||||||
|
* @return [bool] True if the node should keep the small values, false otherwise
|
||||||
|
*/
|
||||||
|
template <> inline
|
||||||
|
bool keepSmall<SortMode::Bubbletonic>(mpi_id_t node, mpi_id_t partner, [[maybe_unused]] size_t depth) {
|
||||||
|
if (node == partner)
|
||||||
|
throw std::runtime_error("(keepSmall) Node and Partner can not be the same\n");
|
||||||
|
return (node < partner);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Predicate to check if a node keeps the small numbers during the bitonic sort network exchange.
|
||||||
|
*
|
||||||
|
* @param node [mpi_id_t] The node for which we check
|
||||||
|
* @param partner [mpi_id_t] The partner of the data exchange
|
||||||
|
* @param depth [size_t] The total depth of the sorting network (same for each step for a given network)
|
||||||
|
* @return [bool] True if the node should keep the small values, false otherwise
|
||||||
|
*/
|
||||||
|
template <> inline
|
||||||
|
bool keepSmall<SortMode::Bitonic>(mpi_id_t node, mpi_id_t partner, size_t depth) {
|
||||||
|
if (node == partner)
|
||||||
|
throw std::runtime_error("(keepSmall) Node and Partner can not be the same\n");
|
||||||
|
return ascending<SortMode::Bitonic>(node, depth) == (node < partner);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Predicate to check if the node is active in the current iteration of the bubbletonic
|
||||||
|
* sort exchange.
|
||||||
|
*
|
||||||
|
* @param node [mpi_id_t] The node to check
|
||||||
|
* @param nodes [size_t] The total number of nodes
|
||||||
|
* @return [bool] True if the node is active, false otherwise
|
||||||
|
*/
|
||||||
|
bool isActive(mpi_id_t node, size_t nodes);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ============================== Data utilities ==============================
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Sort a range using the build-in O(Nlog(N)) algorithm
|
||||||
|
*
|
||||||
|
* @tparam RangeT A range type with random access iterator
|
||||||
|
*
|
||||||
|
* @param data [RangeT] The data to be sorted
|
||||||
|
* @param ascending [bool] Flag to indicate the sorting order
|
||||||
|
*/
|
||||||
|
template<typename RangeT>
|
||||||
|
void fullSort(RangeT& data, bool ascending) noexcept {
|
||||||
|
// Use introsort from stdlib++ here, unless ... __gnu_parallel
|
||||||
|
if (ascending) {
|
||||||
|
__gnu_parallel::sort(data.begin(), data.end(), std::less<>());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
__gnu_parallel::sort(data.begin(), data.end(), std::greater<>());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Core functionality of sort for shadowed buffer types using
|
||||||
|
* the "elbow sort" algorithm.
|
||||||
|
*
|
||||||
|
* @note:
|
||||||
|
* This algorithm can not work "in place".
|
||||||
|
* We use the active buffer as source and the shadow as target.
|
||||||
|
* At the end we switch which buffer is active and which is the shadow.
|
||||||
|
* @note
|
||||||
|
* This is the core functionality. Use the elbowSort() function instead
|
||||||
|
*
|
||||||
|
* @tparam ShadowedDataT A Shadowed buffer type with random access iterator.
|
||||||
|
* @tparam CompT A Comparison type for binary operation comparisons
|
||||||
|
*
|
||||||
|
* @param data [ShadowedDataT] The data to sort
|
||||||
|
* @param ascending [bool] Flag to indicate the sorting order
|
||||||
|
* @param comp [CompT] The binary operator object
|
||||||
|
*/
|
||||||
|
template<typename ShadowedDataT, typename CompT>
|
||||||
|
void elbowSortCore(ShadowedDataT& data, bool ascending, CompT comp) noexcept {
|
||||||
|
auto& active = data.getActive(); // Get the source vector (the data to sort)
|
||||||
|
auto& shadow = data.getShadow(); // Get the target vector (the sorted data)
|
||||||
|
|
||||||
|
size_t N = data.size(); // The total size is the same or both vectors
|
||||||
|
size_t left = std::distance(
|
||||||
|
active.begin(),
|
||||||
|
(ascending) ?
|
||||||
|
std::min_element(active.begin(), active.end()) :
|
||||||
|
std::max_element(active.begin(), active.end())
|
||||||
|
); // start 'left' from elbow of the bitonic
|
||||||
|
size_t right = (left == N-1) ? 0 : left + 1;
|
||||||
|
|
||||||
|
// Walk in opposite directions from elbow and insert-sort to target vector
|
||||||
|
for (size_t i = 0 ; i<N ; ++i) {
|
||||||
|
if (comp(active[left], active[right])) {
|
||||||
|
shadow[i] = active[left];
|
||||||
|
left = (left == 0) ? N-1 : left -1; // cycle decrease
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
shadow[i] = active[right];
|
||||||
|
right = (right + 1) % N; // cycle increase
|
||||||
|
}
|
||||||
|
}
|
||||||
|
data.switch_active(); // Switch active-shadow buffers
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Sort a shadowed buffer using the "elbow sort" algorithm.
|
||||||
|
*
|
||||||
|
* @tparam ShadowedDataT A Shadowed buffer type with random access iterator.
|
||||||
|
*
|
||||||
|
* @param data [ShadowedDataT] The data to sort
|
||||||
|
* @param ascending [bool] Flag to indicate the sorting order
|
||||||
|
*/
|
||||||
|
template<typename ShadowedDataT>
|
||||||
|
void elbowSort(ShadowedDataT& data, bool ascending) noexcept {
|
||||||
|
if (ascending)
|
||||||
|
elbowSortCore(data, ascending, std::less<>());
|
||||||
|
else
|
||||||
|
elbowSortCore(data, ascending, std::greater<>());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Takes two sorted sequences where one is in increasing and the other is in decreasing order
|
||||||
|
* and selects either the larger or the smaller items in one-to-one comparison between them.
|
||||||
|
* The result is a bitonic sequence.
|
||||||
|
*
|
||||||
|
* @tparam RangeT A range type with random access iterator
|
||||||
|
*
|
||||||
|
* @param local [RangeT] Reference to the local sequence
|
||||||
|
* @param remote [const RangeT] Reference to the remote sequence (copied locally by MPI)
|
||||||
|
* @param keepSmall [bool] Flag to indicate if we keep the small items in local sequence
|
||||||
|
*/
|
||||||
|
template<typename RangeT>
|
||||||
|
void keepMinOrMax(RangeT& local, const RangeT& remote, bool keepSmall) noexcept {
|
||||||
|
using value_t = typename RangeT::value_type;
|
||||||
|
std::transform(
|
||||||
|
local.begin(), local.end(),
|
||||||
|
remote.begin(),
|
||||||
|
local.begin(),
|
||||||
|
[&keepSmall](const value_t& a, const value_t& b){
|
||||||
|
return (keepSmall) ? std::min(a, b) : std::max(a, b);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ============================== Sort algorithms ==============================
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* A distributed version of the Bubbletonic sort algorithm.
|
||||||
|
*
|
||||||
|
* @note
|
||||||
|
* Each MPI process should run an instance of this function.
|
||||||
|
*
|
||||||
|
* @tparam ShadowedDataT A Shadowed buffer type with random access iterator.
|
||||||
|
*
|
||||||
|
* @param data [ShadowedDataT] The local to MPI process data to sort
|
||||||
|
* @param Processes [mpi_id_t] The total number of MPI processes
|
||||||
|
* @param rank [mpi_id_t] The current process id
|
||||||
|
*/
|
||||||
|
template<typename ShadowedDataT>
|
||||||
|
void distBubbletonic(ShadowedDataT& data, mpi_id_t Processes, mpi_id_t rank) {
|
||||||
|
// Initially sort to create a half part of a bitonic sequence
|
||||||
|
timeCall(TfullSort, fullSort, data, ascending<SortMode::Bubbletonic>(rank, 0));
|
||||||
|
|
||||||
|
// Sort network (O(N) iterations)
|
||||||
|
for (size_t step = 0; step < static_cast<size_t>(Processes); ++step) {
|
||||||
|
// Find out exchange configuration
|
||||||
|
auto part = partner<SortMode::Bubbletonic>(rank, step);
|
||||||
|
auto ks = keepSmall<SortMode::Bubbletonic>(rank, part, Processes);
|
||||||
|
if ( isActive(rank, Processes) &&
|
||||||
|
isActive(part, Processes) ) {
|
||||||
|
// Exchange with partner, keep nim-or-max and sort - O(N)
|
||||||
|
int tag = static_cast<int>(step);
|
||||||
|
timeCall(Texchange, mpi.exchange_data, data.getActive(), data.getShadow(), part, tag);
|
||||||
|
timeCall(Tminmax, keepMinOrMax, data.getActive(), data.getShadow(), ks);
|
||||||
|
timeCall(TelbowSort, elbowSort, data, ascending<SortMode::Bubbletonic>(rank, Processes));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Invert if the node was descending.
|
||||||
|
if (!ascending<SortMode::Bubbletonic>(rank, 0)) {
|
||||||
|
elbowSort(data, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* A distributed version of the Bitonic sort algorithm.
|
||||||
|
*
|
||||||
|
* @note
|
||||||
|
* Each MPI process should run an instance of this function.
|
||||||
|
*
|
||||||
|
* @tparam ShadowedDataT A Shadowed buffer type with random access iterator.
|
||||||
|
*
|
||||||
|
* @param data [ShadowedDataT] The local to MPI process data to sort
|
||||||
|
* @param Processes [mpi_id_t] The total number of MPI processes
|
||||||
|
* @param rank [mpi_id_t] The current process id
|
||||||
|
*/
|
||||||
|
template<typename ShadowedDataT>
|
||||||
|
void distBitonic(ShadowedDataT& data, mpi_id_t Processes, mpi_id_t rank) {
|
||||||
|
// Initially sort to create a half part of a bitonic sequence
|
||||||
|
timeCall(TfullSort, fullSort, data, ascending<SortMode::Bitonic>(rank, 0));
|
||||||
|
|
||||||
|
// Run through sort network using elbow-sort ( O(LogN * LogN) iterations )
|
||||||
|
auto p = static_cast<uint32_t>(std::log2(Processes));
|
||||||
|
for (size_t depth = 1; depth <= p; ++depth) {
|
||||||
|
for (size_t step = depth; step > 0;) {
|
||||||
|
--step;
|
||||||
|
// Find out exchange configuration
|
||||||
|
auto part = partner<SortMode::Bitonic>(rank, step);
|
||||||
|
auto ks = keepSmall<SortMode::Bitonic>(rank, part, depth);
|
||||||
|
// Exchange with partner, keep nim-or-max
|
||||||
|
int tag = static_cast<int>( (2*p*depth) + step );
|
||||||
|
timeCall(Texchange, mpi.exchange_data, data.getActive(), data.getShadow(), part, tag);
|
||||||
|
timeCall(Tminmax, keepMinOrMax, data.getActive(), data.getShadow(), ks);
|
||||||
|
}
|
||||||
|
// sort - O(N)
|
||||||
|
timeCall(TelbowSort, elbowSort, data, ascending<SortMode::Bitonic>(rank, depth));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif //DISTBITONIC_H_
|
||||||
@@ -0,0 +1,405 @@
|
|||||||
|
/**
|
||||||
|
* \file
|
||||||
|
* \brief Utilities header
|
||||||
|
*
|
||||||
|
* \author
|
||||||
|
* Christos Choutouridis AEM:8997
|
||||||
|
* <cchoutou@ece.auth.gr>
|
||||||
|
*/
|
||||||
|
#ifndef UTILS_HPP_
|
||||||
|
#define UTILS_HPP_
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
#include <iostream>
|
||||||
|
#include <chrono>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <mpi.h>
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* MPI_<type> dispatcher mechanism
|
||||||
|
*/
|
||||||
|
template <typename T> struct MPI_TypeMapper { };
|
||||||
|
|
||||||
|
template <> struct MPI_TypeMapper<char> { static MPI_Datatype getType() { return MPI_CHAR; } };
|
||||||
|
template <> struct MPI_TypeMapper<short> { static MPI_Datatype getType() { return MPI_SHORT; } };
|
||||||
|
template <> struct MPI_TypeMapper<int> { static MPI_Datatype getType() { return MPI_INT; } };
|
||||||
|
template <> struct MPI_TypeMapper<long> { static MPI_Datatype getType() { return MPI_LONG; } };
|
||||||
|
template <> struct MPI_TypeMapper<long long> { static MPI_Datatype getType() { return MPI_LONG_LONG; } };
|
||||||
|
template <> struct MPI_TypeMapper<unsigned char> { static MPI_Datatype getType() { return MPI_UNSIGNED_CHAR; } };
|
||||||
|
template <> struct MPI_TypeMapper<unsigned short>{ static MPI_Datatype getType() { return MPI_UNSIGNED_SHORT; } };
|
||||||
|
template <> struct MPI_TypeMapper<unsigned int> { static MPI_Datatype getType() { return MPI_UNSIGNED; } };
|
||||||
|
template <> struct MPI_TypeMapper<unsigned long> { static MPI_Datatype getType() { return MPI_UNSIGNED_LONG; } };
|
||||||
|
template <> struct MPI_TypeMapper<unsigned long long> { static MPI_Datatype getType() { return MPI_UNSIGNED_LONG_LONG; } };
|
||||||
|
template <> struct MPI_TypeMapper<float> { static MPI_Datatype getType() { return MPI_FLOAT; } };
|
||||||
|
template <> struct MPI_TypeMapper<double> { static MPI_Datatype getType() { return MPI_DOUBLE; } };
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* MPI wrapper type to provide MPI functionality and RAII to MPI as a resource
|
||||||
|
*
|
||||||
|
* @tparam TID The MPI type for process id [default: int]
|
||||||
|
*/
|
||||||
|
template<typename TID = int>
|
||||||
|
struct MPI_t {
|
||||||
|
using ID_t = TID; // Export TID type (currently int defined by the standard)
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Initializes the MPI environment, must called from each process
|
||||||
|
*
|
||||||
|
* @param argc [int*] POINTER to main's argc argument
|
||||||
|
* @param argv [char***] POINTER to main's argv argument
|
||||||
|
*/
|
||||||
|
void init(int* argc, char*** argv) {
|
||||||
|
// Initialize the MPI environment
|
||||||
|
int err;
|
||||||
|
if ((err = MPI_Init(argc, argv)) != MPI_SUCCESS)
|
||||||
|
mpi_throw(err, "(MPI) MPI_Init() - ");
|
||||||
|
initialized_ = true;
|
||||||
|
|
||||||
|
// Get the number of processes
|
||||||
|
int size_value, rank_value;
|
||||||
|
if ((err = MPI_Comm_size(MPI_COMM_WORLD, &size_value)) != MPI_SUCCESS)
|
||||||
|
mpi_throw(err, "(MPI) MPI_Comm_size() - ");
|
||||||
|
if ((err = MPI_Comm_rank(MPI_COMM_WORLD, &rank_value)) != MPI_SUCCESS)
|
||||||
|
mpi_throw(err, "(MPI) MPI_Comm_rank() - ");
|
||||||
|
size_ = static_cast<ID_t>(size_value);
|
||||||
|
rank_ = static_cast<ID_t>(rank_value);
|
||||||
|
|
||||||
|
// Get the name of the processor
|
||||||
|
char processor_name[MPI_MAX_PROCESSOR_NAME];
|
||||||
|
int name_len;
|
||||||
|
if ((err = MPI_Get_processor_name(processor_name, &name_len)) != MPI_SUCCESS)
|
||||||
|
mpi_throw(err, "(MPI) MPI_Get_processor_name() - ");
|
||||||
|
name_ = std::string (processor_name, name_len);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Exchange data with partner as part of the sorting network of both bubbletonic or bitonic
|
||||||
|
* sorting algorithms.
|
||||||
|
*
|
||||||
|
* This function matches a transmit and a receive in order for fully exchanged data between
|
||||||
|
* current node and partner.
|
||||||
|
*
|
||||||
|
* @tparam T The inner valur type used in buffer
|
||||||
|
*
|
||||||
|
* @param ldata [std::vector<T>] Reference to local data to send
|
||||||
|
* @param rdata [std::vector<T>] Reference to buffer to receive data from partner
|
||||||
|
* @param partner [mpi_id_t] The partner for the exchange
|
||||||
|
* @param tag [int] The tag to use for the MPI communication
|
||||||
|
*/
|
||||||
|
template<typename T>
|
||||||
|
void exchange_data(const std::vector<T>& ldata, std::vector<T>& rdata, ID_t partner, int tag) {
|
||||||
|
if (tag < 0)
|
||||||
|
throw std::runtime_error("(MPI) exchange_data() [tag] - Out of bound");
|
||||||
|
|
||||||
|
MPI_Datatype datatype = MPI_TypeMapper<T>::getType();
|
||||||
|
int count = static_cast<int>(ldata.size());
|
||||||
|
MPI_Status status;
|
||||||
|
int err;
|
||||||
|
if ((err = MPI_Sendrecv(
|
||||||
|
ldata.data(), count, datatype, partner, tag,
|
||||||
|
rdata.data(), count, datatype, partner, tag,
|
||||||
|
MPI_COMM_WORLD, &status
|
||||||
|
)) != MPI_SUCCESS)
|
||||||
|
mpi_throw(err, "(MPI) MPI_Sendrecv() [data] - ");
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Exchange a data object with partner as part of the sorting network of both bubbletonic
|
||||||
|
* or bitonic sorting algorithms.
|
||||||
|
*
|
||||||
|
* This function matches a transmit and a receive in order for fully exchanged the data object
|
||||||
|
* between current node and partner.
|
||||||
|
*
|
||||||
|
* @tparam T The object type
|
||||||
|
*
|
||||||
|
* @param local [const T&] Reference to the local object to send
|
||||||
|
* @param remote [T&] Reference to the object to receive data from partner
|
||||||
|
* @param partner [mpi_id_t] The partner for the exchange
|
||||||
|
* @param tag [int] The tag to use for the MPI communication
|
||||||
|
*/
|
||||||
|
template<typename T>
|
||||||
|
void exchange_it(const T& local, T& remote, ID_t partner, int tag) {
|
||||||
|
if (tag < 0)
|
||||||
|
throw std::runtime_error("(MPI) exchange_it() [tag] - Out of bound");
|
||||||
|
MPI_Status status;
|
||||||
|
int err;
|
||||||
|
if ((err = MPI_Sendrecv(
|
||||||
|
&local, sizeof(T), MPI_BYTE, partner, tag,
|
||||||
|
&remote, sizeof(T), MPI_BYTE, partner, tag,
|
||||||
|
MPI_COMM_WORLD, &status
|
||||||
|
)) != MPI_SUCCESS)
|
||||||
|
mpi_throw(err, "(MPI) MPI_Sendrecv() [item] - ");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Accessors
|
||||||
|
[[nodiscard]] ID_t rank() const noexcept { return rank_; }
|
||||||
|
[[nodiscard]] ID_t size() const noexcept { return size_; }
|
||||||
|
[[nodiscard]] const std::string& name() const noexcept { return name_; }
|
||||||
|
|
||||||
|
// Mutators
|
||||||
|
ID_t rank(ID_t rank) noexcept { return rank_ = rank; }
|
||||||
|
ID_t size(ID_t size) noexcept { return size_ = size; }
|
||||||
|
std::string& name(const std::string& name) noexcept { return name_ = name; }
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Finalized the MPI
|
||||||
|
*/
|
||||||
|
void finalize() {
|
||||||
|
// Finalize the MPI environment
|
||||||
|
initialized_ = false;
|
||||||
|
MPI_Finalize();
|
||||||
|
}
|
||||||
|
|
||||||
|
//! RAII MPI finalization
|
||||||
|
~MPI_t() {
|
||||||
|
// Finalize the MPI environment even on unexpected errors
|
||||||
|
if (initialized_)
|
||||||
|
MPI_Finalize();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Local functionality
|
||||||
|
private:
|
||||||
|
/*!
|
||||||
|
* Throw exception helper. It bundles the prefix msg with the MPI error string retrieved by
|
||||||
|
* MPI API.
|
||||||
|
*
|
||||||
|
* @param err The MPI error code
|
||||||
|
* @param prefixMsg The prefix text for the exception error message
|
||||||
|
*/
|
||||||
|
void mpi_throw(int err, const char* prefixMsg) {
|
||||||
|
char err_msg[MPI_MAX_ERROR_STRING];
|
||||||
|
int msg_len;
|
||||||
|
MPI_Error_string(err, err_msg, &msg_len);
|
||||||
|
throw std::runtime_error(prefixMsg + std::string (err_msg) + '\n');
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
ID_t rank_{}; //!< MPI rank of the process
|
||||||
|
ID_t size_{}; //!< MPI total size of the execution
|
||||||
|
std::string name_{}; //!< The name of the local machine
|
||||||
|
bool initialized_{}; //!< RAII helper flag
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Exported data types
|
||||||
|
*/
|
||||||
|
extern MPI_t<> mpi;
|
||||||
|
using mpi_id_t = MPI_t<>::ID_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* @brief A std::vector wrapper with 2 vectors, an active and a shadow.
|
||||||
|
*
|
||||||
|
* This type exposes the standard vector
|
||||||
|
* functionality of the active vector. The shadow can be used when we need to use the vector as mutable
|
||||||
|
* data in algorithms that can not support "in-place" editing (like elbow-sort for example)
|
||||||
|
*
|
||||||
|
* @tparam Value_t the underlying data type of the vectors
|
||||||
|
*/
|
||||||
|
template <typename Value_t>
|
||||||
|
struct ShadowedVec_t {
|
||||||
|
// STL requirements
|
||||||
|
using value_type = Value_t;
|
||||||
|
using iterator = typename std::vector<Value_t>::iterator;
|
||||||
|
using const_iterator = typename std::vector<Value_t>::const_iterator;
|
||||||
|
using size_type = typename std::vector<Value_t>::size_type;
|
||||||
|
|
||||||
|
// Default constructor
|
||||||
|
ShadowedVec_t() = default;
|
||||||
|
|
||||||
|
// Constructor from an std::vector
|
||||||
|
explicit ShadowedVec_t(const std::vector<Value_t>& vec)
|
||||||
|
: North(vec), South(), active(north) {
|
||||||
|
South.resize(North.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
explicit ShadowedVec_t(std::vector<Value_t>&& vec)
|
||||||
|
: North(std::move(vec)), South(), active(north) {
|
||||||
|
South.resize(North.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Copy assignment operator
|
||||||
|
ShadowedVec_t& operator=(const ShadowedVec_t& other) {
|
||||||
|
if (this != &other) { // Avoid self-assignment
|
||||||
|
North = other.North;
|
||||||
|
South = other.South;
|
||||||
|
active = other.active;
|
||||||
|
}
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Move assignment operator
|
||||||
|
ShadowedVec_t& operator=(ShadowedVec_t&& other) noexcept {
|
||||||
|
if (this != &other) { // Avoid self-assignment
|
||||||
|
North = std::move(other.North);
|
||||||
|
South = std::move(other.South);
|
||||||
|
active = other.active;
|
||||||
|
|
||||||
|
// There is no need to zero out other since it is valid but in a non-defined state
|
||||||
|
}
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Type accessors
|
||||||
|
std::vector<Value_t>& getActive() { return (active == north) ? North : South; }
|
||||||
|
std::vector<Value_t>& getShadow() { return (active == north) ? South : North; }
|
||||||
|
const std::vector<Value_t>& getActive() const { return (active == north) ? North : South; }
|
||||||
|
const std::vector<Value_t>& getShadow() const { return (active == north) ? South : North; }
|
||||||
|
|
||||||
|
// Swap vectors
|
||||||
|
void switch_active() { active = (active == north) ? south : north; }
|
||||||
|
|
||||||
|
// Dispatch vector functionality to active vector
|
||||||
|
Value_t& operator[](size_type index) { return getActive()[index]; }
|
||||||
|
const Value_t& operator[](size_type index) const { return getActive()[index]; }
|
||||||
|
|
||||||
|
Value_t& at(size_type index) { return getActive().at(index); }
|
||||||
|
const Value_t& at(size_type index) const { return getActive().at(index); }
|
||||||
|
|
||||||
|
void push_back(const Value_t& value) { getActive().push_back(value); }
|
||||||
|
void push_back(Value_t&& value) { getActive().push_back(std::move(value)); }
|
||||||
|
void pop_back() { getActive().pop_back(); }
|
||||||
|
Value_t& front() { return getActive().front(); }
|
||||||
|
Value_t& back() { return getActive().back(); }
|
||||||
|
const Value_t& front() const { return getActive().front(); }
|
||||||
|
const Value_t& back() const { return getActive().back(); }
|
||||||
|
|
||||||
|
iterator begin() { return getActive().begin(); }
|
||||||
|
const_iterator begin() const { return getActive().begin(); }
|
||||||
|
iterator end() { return getActive().end(); }
|
||||||
|
const_iterator end() const { return getActive().end(); }
|
||||||
|
|
||||||
|
size_type size() const { return getActive().size(); }
|
||||||
|
void resize(size_t new_size) {
|
||||||
|
North.resize(new_size);
|
||||||
|
South.resize(new_size);
|
||||||
|
}
|
||||||
|
|
||||||
|
void reserve(size_t new_capacity) {
|
||||||
|
North.reserve(new_capacity);
|
||||||
|
South.reserve(new_capacity);
|
||||||
|
}
|
||||||
|
[[nodiscard]] size_t capacity() const { return getActive().capacity(); }
|
||||||
|
[[nodiscard]] bool empty() const { return getActive().empty(); }
|
||||||
|
|
||||||
|
void clear() { getActive().clear(); }
|
||||||
|
void swap(std::vector<Value_t>& other) { getActive().swap(other); }
|
||||||
|
|
||||||
|
// Comparisons
|
||||||
|
bool operator== (const ShadowedVec_t& other) { return getActive() == other.getActive(); }
|
||||||
|
bool operator!= (const ShadowedVec_t& other) { return getActive() != other.getActive(); }
|
||||||
|
bool operator== (const std::vector<value_type>& other) { return getActive() == other; }
|
||||||
|
bool operator!= (const std::vector<value_type>& other) { return getActive() != other; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::vector<Value_t> North{}; //!< Actual buffer to be used either as active or shadow
|
||||||
|
std::vector<Value_t> South{}; //!< Actual buffer to be used either as active or shadow
|
||||||
|
enum {
|
||||||
|
north, south
|
||||||
|
} active{north}; //!< Flag to select between North and South buffer
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Exported data types
|
||||||
|
*/
|
||||||
|
using distBuffer_t = ShadowedVec_t<distValue_t>;
|
||||||
|
extern distBuffer_t Data;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* A Logger for entire program.
|
||||||
|
*/
|
||||||
|
struct Log {
|
||||||
|
struct Endl {} endl; //!< a tag object to to use it as a new line request.
|
||||||
|
|
||||||
|
//! We provide logging via << operator
|
||||||
|
template<typename T>
|
||||||
|
Log &operator<<(T &&t) {
|
||||||
|
if (config.verbose) {
|
||||||
|
if (line_) {
|
||||||
|
std::cout << "[Log]: " << t;
|
||||||
|
line_ = false;
|
||||||
|
} else
|
||||||
|
std::cout << t;
|
||||||
|
}
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
// overload for special end line handling
|
||||||
|
Log &operator<<(Endl e) {
|
||||||
|
(void) e;
|
||||||
|
if (config.verbose) {
|
||||||
|
std::cout << '\n';
|
||||||
|
line_ = true;
|
||||||
|
}
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool line_{true};
|
||||||
|
};
|
||||||
|
|
||||||
|
extern Log logger;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* A small timing utility based on chrono.
|
||||||
|
*/
|
||||||
|
struct Timing {
|
||||||
|
using Tpoint = std::chrono::steady_clock::time_point;
|
||||||
|
using Tduration = std::chrono::microseconds;
|
||||||
|
using microseconds = std::chrono::microseconds;
|
||||||
|
using milliseconds = std::chrono::milliseconds;
|
||||||
|
using seconds = std::chrono::seconds;
|
||||||
|
|
||||||
|
//! tool to mark the starting point
|
||||||
|
Tpoint start() noexcept { return mark_ = std::chrono::steady_clock::now(); }
|
||||||
|
|
||||||
|
//! tool to mark the ending point
|
||||||
|
Tpoint stop() noexcept {
|
||||||
|
Tpoint now = std::chrono::steady_clock::now();
|
||||||
|
duration_ += dt(now, mark_);
|
||||||
|
return now;
|
||||||
|
}
|
||||||
|
|
||||||
|
//! A duration calculation utility
|
||||||
|
static Tduration dt(Tpoint t2, Tpoint t1) noexcept {
|
||||||
|
return std::chrono::duration_cast<Tduration>(t2 - t1);
|
||||||
|
}
|
||||||
|
|
||||||
|
//! Tool to print the time interval
|
||||||
|
void print_duration(const char *what, mpi_id_t rank) noexcept {
|
||||||
|
if (std::chrono::duration_cast<microseconds>(duration_).count() < 10000)
|
||||||
|
std::cout << "[Timing] (Rank " << rank << ") " << what << ": "
|
||||||
|
<< std::to_string(std::chrono::duration_cast<microseconds>(duration_).count()) << " [usec]\n";
|
||||||
|
else if (std::chrono::duration_cast<milliseconds>(duration_).count() < 10000)
|
||||||
|
std::cout << "[Timing] (Rank " << rank << ") " << what << ": "
|
||||||
|
<< std::to_string(std::chrono::duration_cast<milliseconds>(duration_).count()) << " [msec]\n";
|
||||||
|
else
|
||||||
|
std::cout << "[Timing] (Rank " << rank << ") " << what << ": "
|
||||||
|
<< std::to_string(std::chrono::duration_cast<seconds>(duration_).count()) << " [sec]\n";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
Tpoint mark_{};
|
||||||
|
Tduration duration_{};
|
||||||
|
};
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Utility "high level function"-like macro to forward a function call
|
||||||
|
* and accumulate the execution time to the corresponding timing object.
|
||||||
|
*
|
||||||
|
* @param Tim The Timing object [Needs to have methods start() and stop()]
|
||||||
|
* @param Func The function name
|
||||||
|
* @param ... The arguments to pass to function (the preprocessor way)
|
||||||
|
*/
|
||||||
|
#define timeCall(Tim, Func, ...) \
|
||||||
|
Tim.start(); \
|
||||||
|
Func(__VA_ARGS__); \
|
||||||
|
Tim.stop(); \
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* UTILS_HPP_ */
|
||||||
@@ -0,0 +1,114 @@
|
|||||||
|
#
|
||||||
|
# ---------------------------------------------
|
||||||
|
# Bitonic v0.5 functionality
|
||||||
|
#
|
||||||
|
|
||||||
|
function partner(node, step)
|
||||||
|
partner = node + ((((node+step) % 2) == 0) ? 1 : -1)
|
||||||
|
end
|
||||||
|
|
||||||
|
function active(id, p)
|
||||||
|
ret = (id >= 0) && (id < p)
|
||||||
|
end
|
||||||
|
|
||||||
|
function exchange(localid, remoteid)
|
||||||
|
if verbose
|
||||||
|
println("Exchange local data from $localid with partner $remoteid")
|
||||||
|
end
|
||||||
|
nothing # We have all data here ;)
|
||||||
|
end
|
||||||
|
|
||||||
|
function minmax(data, localid, remoteid, keepsmall)
|
||||||
|
# Keep min-max on local data
|
||||||
|
temp = copy(data[localid+1, :])
|
||||||
|
if (keepsmall)
|
||||||
|
view(data, localid+1, :) .= min.(temp, data[remoteid+1, :])
|
||||||
|
view(data, remoteid+1, :) .= max.(temp, data[remoteid+1, :])
|
||||||
|
else
|
||||||
|
view(data, localid+1, :) .= max.(temp, data[remoteid+1, :])
|
||||||
|
view(data, remoteid+1, :) .= min.(temp, data[remoteid+1, :])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
"""
|
||||||
|
distbubletonic!(p, data)
|
||||||
|
|
||||||
|
distributed bitonic v0.5 sort using a "bubble sort"-like functionality to propagate large and small
|
||||||
|
items between nodes.
|
||||||
|
|
||||||
|
p: The number of processes
|
||||||
|
data: (p, N/p) array
|
||||||
|
"""
|
||||||
|
function distbubletonic!(p, data)
|
||||||
|
|
||||||
|
pid = 0:p-1
|
||||||
|
ascending = mod.(pid,2) .== 0
|
||||||
|
if verbose
|
||||||
|
println("ascending: $ascending")
|
||||||
|
end
|
||||||
|
# local full sort here (run all MPI nodes)
|
||||||
|
for i in 1:p
|
||||||
|
sort!(view(data, i, :), rev = !ascending[i])
|
||||||
|
end
|
||||||
|
for step in 0:p-1
|
||||||
|
direction = [true for x = 1:p]
|
||||||
|
partnerid = partner.(pid, step)
|
||||||
|
activeids = active.(partnerid, p)
|
||||||
|
keepsmall = pid .< partnerid
|
||||||
|
if verbose
|
||||||
|
println("step: $step | active ids: $activeids | partner: $partnerid | keepsmall: $keepsmall")
|
||||||
|
end
|
||||||
|
# exchange with partner and keep small or large (run all MPI nodes)
|
||||||
|
for i in 0:p-1
|
||||||
|
l_idx = i+1
|
||||||
|
r_idx = partnerid[i+1]+1
|
||||||
|
if activeids[l_idx] && i < partnerid[l_idx]
|
||||||
|
exchange(i, partnerid[l_idx])
|
||||||
|
minmax(data, i, partnerid[l_idx], keepsmall[l_idx])
|
||||||
|
sort!(view(data, l_idx, :), rev = !ascending[l_idx]) # elbow sort here
|
||||||
|
sort!(view(data, r_idx, :), rev = !ascending[r_idx]) # elbow sort here
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
# [optional] reverse the odd positions (run all MPI nodes)
|
||||||
|
for i in 1:p
|
||||||
|
if !ascending[i]
|
||||||
|
sort!(view(data, i, :))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
nothing
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Homework setup
|
||||||
|
# ---------------------------------------------
|
||||||
|
#
|
||||||
|
p::Int8 = 3 # The order of number of "processors"
|
||||||
|
q::Int8 = 8 # The data size order (power of 2) of each "processor"
|
||||||
|
verbose = false;
|
||||||
|
|
||||||
|
|
||||||
|
# Run Script
|
||||||
|
# ---------------------------------------------
|
||||||
|
P::Int = 2^p
|
||||||
|
Q::Int = 2^q
|
||||||
|
N::Int = 2^(q+p)
|
||||||
|
|
||||||
|
println("Distributed Bubbletonic (v0.5) test")
|
||||||
|
println("p: $p -> Number of processors: $P")
|
||||||
|
println("q: $q -> Data length for each node: $Q, Total: $(P*Q)")
|
||||||
|
|
||||||
|
println("Create an $P x $Q array")
|
||||||
|
Data = rand(Int8, P, Q)
|
||||||
|
|
||||||
|
println("Sort array with $P (MPI) nodes")
|
||||||
|
@time distbubletonic!(P, Data)
|
||||||
|
|
||||||
|
# Test
|
||||||
|
if issorted(vec(permutedims(Data)))
|
||||||
|
println("Test: Passed")
|
||||||
|
else
|
||||||
|
println("Test: Failed")
|
||||||
|
end
|
||||||
@@ -0,0 +1,200 @@
|
|||||||
|
#
|
||||||
|
# ---------------------------------------------
|
||||||
|
# Bitonic v0.5 functionality
|
||||||
|
#
|
||||||
|
|
||||||
|
function exchange(localid, remoteid)
|
||||||
|
# if verbose
|
||||||
|
# println("Exchange local data from $localid with partner $remoteid")
|
||||||
|
# end
|
||||||
|
nothing # We have all data here ;)
|
||||||
|
end
|
||||||
|
|
||||||
|
function minmax(data, localid, remoteid, keepsmall)
|
||||||
|
# Keep min-max on local data
|
||||||
|
temp = copy(data[localid+1, :])
|
||||||
|
if (keepsmall)
|
||||||
|
view(data, localid+1, :) .= min.(temp, data[remoteid+1, :])
|
||||||
|
view(data, remoteid+1, :) .= max.(temp, data[remoteid+1, :])
|
||||||
|
else
|
||||||
|
view(data, localid+1, :) .= max.(temp, data[remoteid+1, :])
|
||||||
|
view(data, remoteid+1, :) .= min.(temp, data[remoteid+1, :])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
function is_bitonic(arr)
|
||||||
|
n = length(arr)
|
||||||
|
if n <= 2
|
||||||
|
return true # Any sequence of length <= 2 is bitonic
|
||||||
|
end
|
||||||
|
|
||||||
|
# State for state machine. 1: inc, -1: dec, 0: z-state
|
||||||
|
state = 0
|
||||||
|
inc_count = 0
|
||||||
|
dec_count = 0
|
||||||
|
ret = false
|
||||||
|
|
||||||
|
for i in 1:n-1
|
||||||
|
# Find the first order
|
||||||
|
if state == 0
|
||||||
|
if arr[i] > arr[i+1]
|
||||||
|
state = -1
|
||||||
|
dec_count += 1
|
||||||
|
elseif arr[i] < arr[i+1]
|
||||||
|
state = 1
|
||||||
|
inc_count += 1
|
||||||
|
end
|
||||||
|
elseif state == -1 # decreasing
|
||||||
|
if arr[i] < arr[i + 1]
|
||||||
|
state = 1
|
||||||
|
inc_count += 1
|
||||||
|
end
|
||||||
|
elseif state == 1 # increasing
|
||||||
|
if arr[i] > arr[i+1]
|
||||||
|
state = -1
|
||||||
|
dec_count += 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if inc_count <= 1 && dec_count <= 1
|
||||||
|
ret = true # Sequence is bitonic
|
||||||
|
elseif inc_count == 2 && dec_count == 1
|
||||||
|
ret = (arr[1] >= arr[n])
|
||||||
|
elseif inc_count == 1 && dec_count == 2
|
||||||
|
ret = (arr[1] <= arr[n])
|
||||||
|
end
|
||||||
|
|
||||||
|
ret
|
||||||
|
end
|
||||||
|
|
||||||
|
function is_sort(arr)
|
||||||
|
# State for state machine. 1: inc, -1: dec, 0: z-state
|
||||||
|
state = 0
|
||||||
|
inc_count = 0
|
||||||
|
dec_count = 0
|
||||||
|
|
||||||
|
for i in 1:length(arr)-1
|
||||||
|
# Find the first order
|
||||||
|
if state == 0
|
||||||
|
if arr[i] > arr[i+1]
|
||||||
|
state = -1
|
||||||
|
dec_count += 1
|
||||||
|
elseif arr[i] < arr[i+1]
|
||||||
|
state = 1
|
||||||
|
inc_count += 1
|
||||||
|
end
|
||||||
|
elseif state == -1 # decreasing
|
||||||
|
if arr[i] < arr[i + 1]
|
||||||
|
state = 1
|
||||||
|
inc_count += 1
|
||||||
|
end
|
||||||
|
elseif state == 1 # increasing
|
||||||
|
if arr[i] > arr[i+1]
|
||||||
|
state = -1
|
||||||
|
dec_count += 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
ret = ((inc_count + dec_count) == 1) ? state : 0
|
||||||
|
ret
|
||||||
|
end
|
||||||
|
|
||||||
|
function sort_network!(data, n, depth)
|
||||||
|
nodes = 0:n-1
|
||||||
|
bitonicFlag = zeros(Int8, size(data, 1))
|
||||||
|
sortFlag = zeros(Int8, size(data, 1))
|
||||||
|
for step = depth-1:-1:0
|
||||||
|
partnerid = nodes .⊻ (1 << step)
|
||||||
|
direction = (nodes .& (1 << depth)) .== 0 .& (nodes .< partnerid)
|
||||||
|
keepsmall = ((nodes .< partnerid) .& direction) .| ((nodes .> partnerid) .& .!direction)
|
||||||
|
if verbose
|
||||||
|
println("depth: $depth | step: $step | partner: $partnerid | keepsmall: $keepsmall")
|
||||||
|
end
|
||||||
|
# exchange with partner and keep small or large (run all MPI nodes)
|
||||||
|
for i in 0:n-1
|
||||||
|
if (i < partnerid[i+1])
|
||||||
|
exchange(i, partnerid[i+1])
|
||||||
|
minmax(data, i, partnerid[i+1], keepsmall[i+1])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if verbose
|
||||||
|
for i in 1:size(data, 1)
|
||||||
|
bitonicFlag[i] = is_bitonic(data[i, :])
|
||||||
|
sortFlag[i] = is_sort(data[i, :])
|
||||||
|
end
|
||||||
|
println("depth: $depth | step: $step | bitonicFlag: $bitonicFlag | sorfFlag: $sortFlag")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
distbitonic!(p, data)
|
||||||
|
|
||||||
|
distributed bitonic sort v1 using elbow merge locally except for the first step
|
||||||
|
p: The number of processes
|
||||||
|
data: (p, N/p) array
|
||||||
|
"""
|
||||||
|
function distbitonic!(p, data)
|
||||||
|
|
||||||
|
q = Int(log2(p)) # CPU order
|
||||||
|
|
||||||
|
pid = 0:p-1
|
||||||
|
ascending = mod.(pid,2) .== 0
|
||||||
|
if verbose
|
||||||
|
println("ascending: $ascending")
|
||||||
|
end
|
||||||
|
# local full sort here (run all MPI nodes)
|
||||||
|
for i in 1:p
|
||||||
|
sort!(view(data, i, :), rev = !ascending[i])
|
||||||
|
end
|
||||||
|
for depth = 1:q
|
||||||
|
sort_network!(data, p, depth)
|
||||||
|
ascending = (pid .& (1 << depth)) .== 0
|
||||||
|
if verbose
|
||||||
|
println("ascending: $ascending")
|
||||||
|
end
|
||||||
|
# local elbowmerge here (run all MPI nodes)
|
||||||
|
for i in 1:p
|
||||||
|
sort!(view(data, i, :), rev = !ascending[i])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
nothing
|
||||||
|
end
|
||||||
|
|
||||||
|
#
|
||||||
|
# Homework setup
|
||||||
|
# ---------------------------------------------
|
||||||
|
#
|
||||||
|
p::Int8 = 3 # The order of number of "processors"
|
||||||
|
q::Int8 = 8 # The data size order (power of 2) of each "processor"
|
||||||
|
verbose = false;
|
||||||
|
|
||||||
|
|
||||||
|
# Run Script
|
||||||
|
# ---------------------------------------------
|
||||||
|
P::Int = 2^p
|
||||||
|
Q::Int = 2^q
|
||||||
|
N::Int = 2^(q+p)
|
||||||
|
|
||||||
|
println("Distributed bitonic (v1) test")
|
||||||
|
println("p: $p -> Number of processors: $P")
|
||||||
|
println("q: $q -> Data length for each node: $Q, Total: $(P*Q)")
|
||||||
|
|
||||||
|
println("Create an $P x $Q array")
|
||||||
|
Data = rand(Int8, P, Q)
|
||||||
|
|
||||||
|
println("Sort array with $P (MPI) nodes")
|
||||||
|
@time distbitonic!(P, Data)
|
||||||
|
|
||||||
|
# Test
|
||||||
|
if issorted(vec(permutedims(Data)))
|
||||||
|
println("Test: Passed")
|
||||||
|
else
|
||||||
|
println("Test: Failed")
|
||||||
|
end
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
# distributed bitonic sort using elbow merge locally except for the first step
|
||||||
|
function distbitonic!(p)
|
||||||
|
|
||||||
|
q = Int(log2(p))
|
||||||
|
|
||||||
|
pid = 0:p-1
|
||||||
|
ascending = mod.(pid,2) .== 0
|
||||||
|
println("ascending: $ascending")
|
||||||
|
# local full sort here
|
||||||
|
for k = 1:q
|
||||||
|
kk = 1 << k
|
||||||
|
for j = k-1:-1:0
|
||||||
|
jj = 1 << j
|
||||||
|
partnerid = pid .⊻ jj
|
||||||
|
direction = (pid .& kk) .== 0 .& (pid .< partnerid)
|
||||||
|
keepsmall = ((pid .< partnerid) .& direction) .| ((pid .> partnerid) .& .!direction)
|
||||||
|
println("k: $k | j: $j | partner: $partnerid | keepsmall: $keepsmall")
|
||||||
|
# exchange with partner and keep small or large
|
||||||
|
end
|
||||||
|
ascending = (pid .& kk) .== 0
|
||||||
|
println("ascending: $ascending")
|
||||||
|
# local elbowmerge here
|
||||||
|
end
|
||||||
|
|
||||||
|
nothing
|
||||||
|
end
|
||||||
|
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
|
||||||
|
# given a bitonic sequence b, merge it into a sorted sequence s
|
||||||
|
@inbounds function elbowmerge!(s, b)
|
||||||
|
n = length(b)
|
||||||
|
l = argmin(b)
|
||||||
|
r = l == n ? 1 : l + 1
|
||||||
|
|
||||||
|
i = 1
|
||||||
|
while i <= n
|
||||||
|
if b[l] < b[r]
|
||||||
|
s[i] = b[l]
|
||||||
|
l = l == 1 ? n : l - 1
|
||||||
|
else
|
||||||
|
s[i] = b[r]
|
||||||
|
r = r == n ? 1 : r + 1
|
||||||
|
end
|
||||||
|
i += 1
|
||||||
|
end
|
||||||
|
nothing
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
/*!
|
||||||
|
* \file
|
||||||
|
* \brief Distributed sort implementation
|
||||||
|
*
|
||||||
|
* \author
|
||||||
|
* Christos Choutouridis AEM:8997
|
||||||
|
* <cchoutou@ece.auth.gr>
|
||||||
|
*/
|
||||||
|
#include "utils.hpp"
|
||||||
|
#include "distsort.hpp"
|
||||||
|
|
||||||
|
|
||||||
|
//! Performance timers for each one of the "costly" functions
|
||||||
|
Timing TfullSort, Texchange, Tminmax, TelbowSort;
|
||||||
|
|
||||||
|
|
||||||
|
bool isActive(mpi_id_t node, size_t nodes) {
|
||||||
|
if (!((nodes > 0) &&
|
||||||
|
(nodes <= std::numeric_limits<mpi_id_t>::max()) ))
|
||||||
|
throw std::runtime_error("(isActive) Non-acceptable value of MPI Nodes\n");
|
||||||
|
// ^ Assert that mpi_id_t can hold nodes, and thus we can cast without data loss!
|
||||||
|
|
||||||
|
return (node >= 0) && (node < static_cast<mpi_id_t>(nodes));
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,243 @@
|
|||||||
|
/*!
|
||||||
|
* \file
|
||||||
|
* \brief Main application file for PDS HW2 (MPI)
|
||||||
|
*
|
||||||
|
* \author
|
||||||
|
* Christos Choutouridis AEM:8997
|
||||||
|
* <cchoutou@ece.auth.gr>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <exception>
|
||||||
|
#include <iostream>
|
||||||
|
#include <algorithm>
|
||||||
|
#include <random>
|
||||||
|
|
||||||
|
#include "utils.hpp"
|
||||||
|
#include "config.h"
|
||||||
|
#include "distsort.hpp"
|
||||||
|
|
||||||
|
|
||||||
|
// Global config data
|
||||||
|
config_t config;
|
||||||
|
MPI_t<> mpi;
|
||||||
|
distBuffer_t Data;
|
||||||
|
Log logger;
|
||||||
|
Timing Ttotal;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* A small command line argument parser
|
||||||
|
* \return The status of the operation
|
||||||
|
*/
|
||||||
|
bool get_options(int argc, char* argv[]){
|
||||||
|
bool status =true;
|
||||||
|
|
||||||
|
// iterate over the passed arguments
|
||||||
|
for (int i=1 ; i<argc ; ++i) {
|
||||||
|
std::string arg(argv[i]); // get current argument
|
||||||
|
|
||||||
|
if (arg == "-q" || arg == "--array-size") {
|
||||||
|
if (i+1 < argc) {
|
||||||
|
config.arraySize = 1 << atoi(argv[++i]);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
status = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (arg == "--validation") {
|
||||||
|
config.validation = true;
|
||||||
|
}
|
||||||
|
else if (arg == "--ndebug") {
|
||||||
|
config.ndebug = true;
|
||||||
|
}
|
||||||
|
else if (arg == "--perf") {
|
||||||
|
config.perf = true;
|
||||||
|
}
|
||||||
|
else if (arg == "-v" || arg == "--verbose") {
|
||||||
|
config.verbose = true;
|
||||||
|
}
|
||||||
|
else if (arg == "-h" || arg == "--help") {
|
||||||
|
std::cout << "distbitonic/distbubbletonic - A distributed bitonic sort\n\n";
|
||||||
|
std::cout << "distbitonic -q <N> [--validation] [--ndebug] [-v]\n";
|
||||||
|
std::cout << "distbitonic -h\n";
|
||||||
|
std::cout << "distbubbletonic -q <N> [--validation] [--ndebug] [-v]\n";
|
||||||
|
std::cout << "distbubbletonic -h\n";
|
||||||
|
std::cout << '\n';
|
||||||
|
std::cout << "Options:\n\n";
|
||||||
|
std::cout << " -q | --array-size <N>\n";
|
||||||
|
std::cout << " Selects the array size according to size = 2^N\n\n";
|
||||||
|
std::cout << " --par-sort\n";
|
||||||
|
std::cout << " Request a parallel full sorting algorithm\n\n";
|
||||||
|
std::cout << " --validation\n";
|
||||||
|
std::cout << " Request a full validation at the end, performed by process rank 0\n\n";
|
||||||
|
std::cout << " --ndebug\n";
|
||||||
|
std::cout << " Skip debug breakpoint when on debug build.\n\n";
|
||||||
|
std::cout << " -t | --timing\n";
|
||||||
|
std::cout << " Request timing measurements output to stdout.\n\n";
|
||||||
|
std::cout << " -v | --verbose\n";
|
||||||
|
std::cout << " Request a more verbose output to stdout.\n\n";
|
||||||
|
std::cout << " -h | --help\n";
|
||||||
|
std::cout << " Prints this and exit.\n\n";
|
||||||
|
std::cout << "Examples:\n\n";
|
||||||
|
std::cout << " mpirun -np 4 distbitonic -q 24\n";
|
||||||
|
std::cout << " Runs distbitonic in 4 MPI processes with 2^24 array points each\n\n";
|
||||||
|
std::cout << " mpirun -np 16 distbubbletonic -q 20\n";
|
||||||
|
std::cout << " Runs distbubbletonic in 16 MPI processes with 2^20 array points each\n\n";
|
||||||
|
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
else { // parse error
|
||||||
|
std::cout << "Invocation error. Try -h for details.\n";
|
||||||
|
status = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* A simple validator for the entire distributed process
|
||||||
|
*
|
||||||
|
* @tparam ShadowedDataT A Shadowed buffer type with random access iterator.
|
||||||
|
*
|
||||||
|
* @param data [ShadowedDataT] The local to MPI process
|
||||||
|
* @param Processes [mpi_id_t] The total number of MPI processes
|
||||||
|
* @param rank [mpi_id_t] The current process id
|
||||||
|
*
|
||||||
|
* @return [bool] True if all are sorted and in total ascending order
|
||||||
|
*/
|
||||||
|
template<typename ShadowedDataT>
|
||||||
|
bool validator(ShadowedDataT& data, mpi_id_t Processes, mpi_id_t rank) {
|
||||||
|
using value_t = typename ShadowedDataT::value_type;
|
||||||
|
bool ret = true; // Have faith!
|
||||||
|
|
||||||
|
// Local results
|
||||||
|
value_t lmin = data.front();
|
||||||
|
value_t lmax = data.back();
|
||||||
|
value_t lsort = static_cast<value_t>(std::is_sorted(data.begin(), data.end()));
|
||||||
|
|
||||||
|
// Gather min/max/sort to rank 0
|
||||||
|
std::vector<value_t> mins(Processes);
|
||||||
|
std::vector<value_t> maxes(Processes);
|
||||||
|
std::vector<value_t> sorts(Processes);
|
||||||
|
|
||||||
|
MPI_Datatype datatype = MPI_TypeMapper<value_t>::getType();
|
||||||
|
MPI_Gather(&lmin, 1, datatype, mins.data(), 1, datatype, 0, MPI_COMM_WORLD);
|
||||||
|
MPI_Gather(&lmax, 1, datatype, maxes.data(), 1, datatype, 0, MPI_COMM_WORLD);
|
||||||
|
MPI_Gather(&lsort, 1, datatype, sorts.data(), 1, datatype, 0, MPI_COMM_WORLD);
|
||||||
|
|
||||||
|
// Check all results
|
||||||
|
if (rank == 0) {
|
||||||
|
for (mpi_id_t r = 1; r < Processes; ++r) {
|
||||||
|
if (sorts[r] == 0)
|
||||||
|
ret = false;
|
||||||
|
if (maxes[r - 1] > mins[r])
|
||||||
|
ret = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if !defined TESTING
|
||||||
|
/*!
|
||||||
|
* @return Returns 0, but.... we may throw or exit(1)
|
||||||
|
*/
|
||||||
|
int main(int argc, char* argv[]) try {
|
||||||
|
// Initialize MPI environment
|
||||||
|
mpi.init(&argc, &argv);
|
||||||
|
|
||||||
|
// try to read command line (after MPI parsing)
|
||||||
|
if (!get_options(argc, argv))
|
||||||
|
exit(1);
|
||||||
|
|
||||||
|
logger << "MPI environment initialized." <<
|
||||||
|
" Rank: " << mpi.rank() <<
|
||||||
|
" Size: " << mpi.size() <<
|
||||||
|
logger.endl;
|
||||||
|
|
||||||
|
#if defined DEBUG
|
||||||
|
#if defined TESTING
|
||||||
|
/*
|
||||||
|
* In case of a debug build we will wait here until sleep_wait
|
||||||
|
* will reset via debugger. In order to do that the user must attach
|
||||||
|
* debugger to all processes. For example:
|
||||||
|
* $> mpirun -np 2 ./<program path>
|
||||||
|
* $> ps aux | grep <program>
|
||||||
|
* $> gdb <program> <PID1>
|
||||||
|
* $> gdb <program> <PID2>
|
||||||
|
*/
|
||||||
|
volatile bool sleep_wait = false;
|
||||||
|
#else
|
||||||
|
volatile bool sleep_wait = true;
|
||||||
|
#endif
|
||||||
|
while (sleep_wait && !config.ndebug)
|
||||||
|
sleep(1);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Initialize local data
|
||||||
|
logger << "Initialize local array of " << config.arraySize << " elements" << logger.endl;
|
||||||
|
std::random_device rd; // Mersenne seeded from hw if possible. range: [type_min, type_max]
|
||||||
|
std::mt19937 gen(rd());
|
||||||
|
std::uniform_int_distribution<distValue_t > dis(
|
||||||
|
std::numeric_limits<distValue_t>::min(),
|
||||||
|
std::numeric_limits<distValue_t>::max()
|
||||||
|
);
|
||||||
|
// Fill vector
|
||||||
|
Data.resize(config.arraySize);
|
||||||
|
std::generate(Data.begin(), Data.end(), [&]() { return dis(gen); });
|
||||||
|
|
||||||
|
// Run distributed sort
|
||||||
|
if (mpi.rank() == 0)
|
||||||
|
logger << "Starting distributed sorting ... ";
|
||||||
|
Ttotal.start();
|
||||||
|
#if CODE_VERSION == BUBBLETONIC
|
||||||
|
distBubbletonic(Data, mpi.size(), mpi.rank());
|
||||||
|
#else
|
||||||
|
distBitonic (Data, mpi.size(), mpi.rank());
|
||||||
|
#endif
|
||||||
|
Ttotal.stop();
|
||||||
|
if (mpi.rank() == 0)
|
||||||
|
logger << " Done." << logger.endl;
|
||||||
|
|
||||||
|
|
||||||
|
// Print-outs and validation
|
||||||
|
if (config.perf) {
|
||||||
|
Ttotal.print_duration("Total ", mpi.rank());
|
||||||
|
TfullSort.print_duration("Full-Sort ", mpi.rank());
|
||||||
|
Texchange.print_duration("Exchange ", mpi.rank());
|
||||||
|
Tminmax.print_duration("Min-Max ", mpi.rank());
|
||||||
|
TelbowSort.print_duration("Elbow-Sort", mpi.rank());
|
||||||
|
}
|
||||||
|
if (config.validation) {
|
||||||
|
// If requested, we have the chance to fail!
|
||||||
|
if (mpi.rank() == 0)
|
||||||
|
std::cout << "Results validation ...";
|
||||||
|
bool val = validator(Data, mpi.size(), mpi.rank());
|
||||||
|
if (mpi.rank() == 0)
|
||||||
|
std::cout << ((val) ? "\x1B[32m [PASS] \x1B[0m\n" : " \x1B[32m [FAIL] \x1B[0m\n");
|
||||||
|
}
|
||||||
|
mpi.finalize();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
catch (std::exception& e) {
|
||||||
|
//we probably pollute the user's screen. Comment `cerr << ...` if you don't like it.
|
||||||
|
std::cerr << "Error: " << e.what() << '\n';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#include <gtest/gtest.h>
|
||||||
|
#include <exception>
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* The testing version of our program
|
||||||
|
*/
|
||||||
|
GTEST_API_ int main(int argc, char **argv) try {
|
||||||
|
testing::InitGoogleTest(&argc, argv);
|
||||||
|
return RUN_ALL_TESTS();
|
||||||
|
}
|
||||||
|
catch (std::exception& e) {
|
||||||
|
std::cout << "Exception: " << e.what() << '\n';
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,330 @@
|
|||||||
|
/**
|
||||||
|
* \file
|
||||||
|
* \brief PDS HW2 tests
|
||||||
|
*
|
||||||
|
* \author
|
||||||
|
* Christos Choutouridis AEM:8997
|
||||||
|
* <cchoutou@ece.auth.gr>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <gtest/gtest.h>
|
||||||
|
|
||||||
|
#include <algorithm> // rand/srand
|
||||||
|
#include <ctime> // rand/srand
|
||||||
|
#include "distsort.hpp"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* ================================== ascending ================================== */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* bool ascending<SortMode::Bitonic>(mpi_id_t node, size_t depth);
|
||||||
|
* depth 0 (the initial ascending pattern)
|
||||||
|
*/
|
||||||
|
TEST(TdistBitonic_UT, ascending_test1) {
|
||||||
|
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(0, 0), true);
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(1, 0), false);
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(2, 0), true);
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(3, 0), false);
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(4, 0), true);
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(5, 0), false);
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(6, 0), true);
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(7, 0), false);
|
||||||
|
|
||||||
|
for (mpi_id_t node = 0 ; node < 256 ; ++node) {
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(node, 0), ((node % 2) ? false : true) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* bool ascending<SortMode::Bitonic>(mpi_id_t node, size_t depth);
|
||||||
|
* depth 1
|
||||||
|
*/
|
||||||
|
TEST(TdistBitonic_UT, ascending_test2) {
|
||||||
|
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(0, 1), true);
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(1, 1), true);
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(2, 1), false);
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(3, 1), false);
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(4, 1), true);
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(5, 1), true);
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(6, 1), false);
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(7, 1), false);
|
||||||
|
|
||||||
|
for (mpi_id_t node = 0 ; node < 256 ; ++node) {
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(2*node, 1), ((node % 2) ? false:true));
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(2*node+1, 1), ((node % 2) ? false:true));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* bool ascending<SortMode::Bitonic>(mpi_id_t node, size_t depth);
|
||||||
|
* various depths
|
||||||
|
*/
|
||||||
|
TEST(TdistBitonic_UT, ascending_test3) {
|
||||||
|
|
||||||
|
// Depth = 3
|
||||||
|
size_t ts_depth = 3;
|
||||||
|
|
||||||
|
for (mpi_id_t n = 0 ; n < (1<<(ts_depth)) ; ++n)
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(n, ts_depth), true);
|
||||||
|
for (mpi_id_t n = (1<<(ts_depth)) ; n < 2*(1<<(ts_depth)) ; ++n)
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(n, ts_depth), false);
|
||||||
|
for (mpi_id_t n = 2*(1<<(ts_depth)) ; n < 3*(1<<(ts_depth)) ; ++n)
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(n, ts_depth), true);
|
||||||
|
for (mpi_id_t n = 3*(1<<(ts_depth)) ; n < 4*(1<<(ts_depth)) ; ++n)
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(n, ts_depth), false);
|
||||||
|
|
||||||
|
// Depth = 4
|
||||||
|
ts_depth = 4;
|
||||||
|
|
||||||
|
for (mpi_id_t n = 0L ; n < (1<<(ts_depth)) ; ++n)
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(n, ts_depth), true);
|
||||||
|
for (mpi_id_t n = (1<<(ts_depth)) ; n < 2*(1<<(ts_depth)) ; ++n)
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(n, ts_depth), false);
|
||||||
|
for (mpi_id_t n = 2*(1<<(ts_depth)) ; n < 3*(1<<(ts_depth)) ; ++n)
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(n, ts_depth), true);
|
||||||
|
for (mpi_id_t n = 3*(1<<(ts_depth)) ; n < 4*(1<<(ts_depth)) ; ++n)
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(n, ts_depth), false);
|
||||||
|
|
||||||
|
// Depth = 8
|
||||||
|
ts_depth = 8;
|
||||||
|
|
||||||
|
for (mpi_id_t n = 0L ; n < (1<<(ts_depth)) ; ++n)
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(n, ts_depth), true);
|
||||||
|
for (mpi_id_t n = (1<<(ts_depth)) ; n < 2*(1<<(ts_depth)) ; ++n)
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(n, ts_depth), false);
|
||||||
|
for (mpi_id_t n = 2*(1<<(ts_depth)) ; n < 3*(1<<(ts_depth)) ; ++n)
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(n, ts_depth), true);
|
||||||
|
for (mpi_id_t n = 3*(1<<(ts_depth)) ; n < 4*(1<<(ts_depth)) ; ++n)
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bitonic>(n, ts_depth), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* ================================== partner ================================== */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* mpi_id_t partner<SortMode::Bitonic>(mpi_id_t node, size_t step);
|
||||||
|
* step = 0
|
||||||
|
*/
|
||||||
|
TEST(TdistBitonic_UT, partner_test1) {
|
||||||
|
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(0, 0), 1);
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(1, 0), 0);
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(2, 0), 3);
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(3, 0), 2);
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(4, 0), 5);
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(5, 0), 4);
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(6, 0), 7);
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(7, 0), 6);
|
||||||
|
|
||||||
|
for (mpi_id_t node = 0 ; node < 256 ; ++node) {
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(node, 0), (node % 2) ? node-1 : node+1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* mpi_id_t partner<SortMode::Bitonic>(mpi_id_t node, size_t step);
|
||||||
|
* step = 1
|
||||||
|
*/
|
||||||
|
TEST(TdistBitonic_UT, partner_test2) {
|
||||||
|
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(0, 1), 2);
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(1, 1), 3);
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(2, 1), 0);
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(3, 1), 1);
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(4, 1), 6);
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(5, 1), 7);
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(6, 1), 4);
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(7, 1), 5);
|
||||||
|
|
||||||
|
for (mpi_id_t n1 = 0 ; n1 < 256 ; n1 += 2) {
|
||||||
|
auto n2 = n1 + 1;
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n1, 1), ((n1 % 4) ? n1-2 : n1+2));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n2, 1), ((n1 % 4) ? n2-2 : n2+2));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* mpi_id_t partner(mpi_id_t node, size_t step);
|
||||||
|
* various steps
|
||||||
|
*/
|
||||||
|
TEST(TdistBitonic_UT, partner_test3) {
|
||||||
|
// step = 2
|
||||||
|
size_t ts_step = 2;
|
||||||
|
|
||||||
|
for (mpi_id_t n1 = 0 ; n1 < 256 ; n1 += 4) {
|
||||||
|
auto n2 = n1 + 1;
|
||||||
|
auto n3 = n1 + 2;
|
||||||
|
auto n4 = n1 + 3;
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n1, ts_step), ((n1 % 8) ? n1-4 : n1+4));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n2, ts_step), ((n1 % 8) ? n2-4 : n2+4));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n3, ts_step), ((n1 % 8) ? n3-4 : n3+4));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n4, ts_step), ((n1 % 8) ? n4-4 : n4+4));
|
||||||
|
}
|
||||||
|
|
||||||
|
// step = 3
|
||||||
|
ts_step = 3;
|
||||||
|
|
||||||
|
for (mpi_id_t n1 = 0 ; n1 < 256 ; n1 += 8) {
|
||||||
|
auto n2 = n1 + 1;
|
||||||
|
auto n3 = n1 + 2;
|
||||||
|
auto n4 = n1 + 3;
|
||||||
|
auto n5 = n1 + 4;
|
||||||
|
auto n6 = n1 + 5;
|
||||||
|
auto n7 = n1 + 6;
|
||||||
|
auto n8 = n1 + 7;
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n1, ts_step), ((n1 % 16) ? n1-8 : n1+8));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n2, ts_step), ((n1 % 16) ? n2-8 : n2+8));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n3, ts_step), ((n1 % 16) ? n3-8 : n3+8));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n4, ts_step), ((n1 % 16) ? n4-8 : n4+8));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n5, ts_step), ((n1 % 16) ? n5-8 : n5+8));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n6, ts_step), ((n1 % 16) ? n6-8 : n6+8));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n7, ts_step), ((n1 % 16) ? n7-8 : n7+8));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n8, ts_step), ((n1 % 16) ? n8-8 : n8+8));
|
||||||
|
}
|
||||||
|
|
||||||
|
// step = 4
|
||||||
|
ts_step = 4;
|
||||||
|
|
||||||
|
for (mpi_id_t n1 = 0 ; n1 < 256 ; n1 += 16) {
|
||||||
|
auto n2 = n1 + 1;
|
||||||
|
auto n3 = n1 + 2;
|
||||||
|
auto n4 = n1 + 3;
|
||||||
|
auto n5 = n1 + 4;
|
||||||
|
auto n6 = n1 + 5;
|
||||||
|
auto n7 = n1 + 6;
|
||||||
|
auto n8 = n1 + 7;
|
||||||
|
auto n9 = n1 + 8;
|
||||||
|
auto n10 = n1 + 9;
|
||||||
|
auto n11 = n1 + 10;
|
||||||
|
auto n12 = n1 + 11;
|
||||||
|
auto n13 = n1 + 12;
|
||||||
|
auto n14 = n1 + 13;
|
||||||
|
auto n15 = n1 + 14;
|
||||||
|
auto n16 = n1 + 15;
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n1, ts_step), ((n1 % 32) ? n1-16 : n1+16));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n2, ts_step), ((n1 % 32) ? n2-16 : n2+16));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n3, ts_step), ((n1 % 32) ? n3-16 : n3+16));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n4, ts_step), ((n1 % 32) ? n4-16 : n4+16));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n5, ts_step), ((n1 % 32) ? n5-16 : n5+16));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n6, ts_step), ((n1 % 32) ? n6-16 : n6+16));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n7, ts_step), ((n1 % 32) ? n7-16 : n7+16));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n8, ts_step), ((n1 % 32) ? n8-16 : n8+16));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n9, ts_step), ((n1 % 32) ? n9-16 : n9+16));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n10, ts_step), ((n1 % 32) ? n10-16 : n10+16));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n11, ts_step), ((n1 % 32) ? n11-16 : n11+16));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n12, ts_step), ((n1 % 32) ? n12-16 : n12+16));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n13, ts_step), ((n1 % 32) ? n13-16 : n13+16));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n14, ts_step), ((n1 % 32) ? n14-16 : n14+16));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n15, ts_step), ((n1 % 32) ? n15-16 : n15+16));
|
||||||
|
EXPECT_EQ(partner<SortMode::Bitonic>(n16, ts_step), ((n1 % 32) ? n16-16 : n16+16));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* ================================== keepSmall ================================== */
|
||||||
|
/*
|
||||||
|
* bool keepSmall(mpi_id_t node, mpi_id_t partner, size_t depth);
|
||||||
|
* Throw check (Not assert - ASSERT_DEATH)
|
||||||
|
*/
|
||||||
|
TEST(TdistBitonic_UT, keepsmall_test1) {
|
||||||
|
// node and partner must differ or else ...
|
||||||
|
EXPECT_THROW(keepSmall<SortMode::Bitonic>(0, 0, 0), std::runtime_error);
|
||||||
|
EXPECT_THROW(keepSmall<SortMode::Bitonic>(1, 1, 42), std::runtime_error);
|
||||||
|
EXPECT_THROW(keepSmall<SortMode::Bitonic>(7, 7, 42), std::runtime_error);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* bool keepsmall(mpi_id_t node, mpi_id_t partner, size_t depth);
|
||||||
|
*
|
||||||
|
* depth: 1 | step: 0 | partner: [1, 0, 3, 2, 5, 4, 7, 6] | keepSmall: Bool[1, 0, 0, 1, 1, 0, 0, 1]
|
||||||
|
*/
|
||||||
|
TEST(TdistBitonic_UT, keepsmall_test2) {
|
||||||
|
size_t ts_depth = 1;
|
||||||
|
mpi_id_t ts_partner[] = {1, 0, 3, 2, 5, 4, 7, 6};
|
||||||
|
bool ts_expected[] = {1, 0, 0, 1, 1, 0, 0, 1};
|
||||||
|
|
||||||
|
for (mpi_id_t node = 0 ; node < 8 ; ++node ) {
|
||||||
|
EXPECT_EQ(ts_expected[node], keepSmall<SortMode::Bitonic>(node, ts_partner[node], ts_depth));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* bool keepsmall(mpi_id_t node, mpi_id_t partner, size_t depth);
|
||||||
|
*
|
||||||
|
* depth: 2 | step: 1 | partner: [2, 3, 0, 1, 6, 7, 4, 5] | keepSmall: Bool[1, 1, 0, 0, 0, 0, 1, 1]
|
||||||
|
*/
|
||||||
|
TEST(TdistBitonic_UT, keepsmall_test3) {
|
||||||
|
size_t ts_depth = 2;
|
||||||
|
mpi_id_t ts_partner[] = {2, 3, 0, 1, 6, 7, 4, 5};
|
||||||
|
bool ts_expected[] = {1, 1, 0, 0, 0, 0, 1, 1};
|
||||||
|
|
||||||
|
for (mpi_id_t node = 0 ; node < 8 ; ++node ) {
|
||||||
|
EXPECT_EQ(ts_expected[node], keepSmall<SortMode::Bitonic>(node, ts_partner[node], ts_depth));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* bool keepsmall(mpi_id_t node, mpi_id_t partner, size_t depth);
|
||||||
|
*
|
||||||
|
* depth: 2 | step: 0 | partner: [1, 0, 3, 2, 5, 4, 7, 6] | keepSmall: Bool[1, 0, 1, 0, 0, 1, 0, 1]
|
||||||
|
*/
|
||||||
|
TEST(TdistBitonic_UT, keepsmall_test4) {
|
||||||
|
size_t ts_depth = 2;
|
||||||
|
mpi_id_t ts_partner[] = {1, 0, 3, 2, 5, 4, 7, 6};
|
||||||
|
bool ts_expected[] = {1, 0, 1, 0, 0, 1, 0, 1};
|
||||||
|
|
||||||
|
for (mpi_id_t node = 0 ; node < 8 ; ++node ) {
|
||||||
|
EXPECT_EQ(ts_expected[node], keepSmall<SortMode::Bitonic>(node, ts_partner[node], ts_depth));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* bool keepSmall(mpi_id_t node, mpi_id_t partner, size_t depth);
|
||||||
|
*
|
||||||
|
* depth: 3 | step: 2 | partner: [4, 5, 6, 7, 0, 1, 2, 3] | keepsmall: Bool[1, 1, 1, 1, 0, 0, 0, 0]
|
||||||
|
*/
|
||||||
|
TEST(TdistBitonic_UT, keepsmall_test5) {
|
||||||
|
size_t ts_depth = 3;
|
||||||
|
mpi_id_t ts_partner[] = {4, 5, 6, 7, 0, 1, 2, 3};
|
||||||
|
bool ts_expected[] = {1, 1, 1, 1, 0, 0, 0, 0};
|
||||||
|
|
||||||
|
for (mpi_id_t node = 0 ; node < 8 ; ++node ) {
|
||||||
|
EXPECT_EQ(ts_expected[node], keepSmall<SortMode::Bitonic>(node, ts_partner[node], ts_depth));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* bool keepSmall(mpi_id_t node, mpi_id_t partner, size_t depth);
|
||||||
|
*
|
||||||
|
* depth: 3 | step: 1 | partner: [2, 3, 0, 1, 6, 7, 4, 5] | keepsmall: Bool[1, 1, 0, 0, 1, 1, 0, 0]
|
||||||
|
*/
|
||||||
|
TEST(TdistBitonic_UT, keepsmall_test6) {
|
||||||
|
size_t ts_depth = 3;
|
||||||
|
mpi_id_t ts_partner[] = {2, 3, 0, 1, 6, 7, 4, 5};
|
||||||
|
bool ts_expected[] = {1, 1, 0, 0, 1, 1, 0, 0};
|
||||||
|
|
||||||
|
for (mpi_id_t node = 0 ; node < 8 ; ++node ) {
|
||||||
|
EXPECT_EQ(ts_expected[node], keepSmall<SortMode::Bitonic>(node, ts_partner[node], ts_depth));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* bool keepSmall(mpi_id_t node, mpi_id_t partner, size_t depth);
|
||||||
|
*
|
||||||
|
* depth: 3 | step: 0 | partner: [1, 0, 3, 2, 5, 4, 7, 6] | keepsmall: Bool[1, 0, 1, 0, 1, 0, 1, 0]
|
||||||
|
*/
|
||||||
|
TEST(TdistBitonic_UT, keepsmall_test7) {
|
||||||
|
size_t ts_depth = 3;
|
||||||
|
mpi_id_t ts_partner[] = {1, 0, 3, 2, 5, 4, 7, 6};
|
||||||
|
bool ts_expected[] = {1, 0, 1, 0, 1, 0, 1, 0};
|
||||||
|
|
||||||
|
for (mpi_id_t node = 0 ; node < 8 ; ++node ) {
|
||||||
|
EXPECT_EQ(ts_expected[node], keepSmall<SortMode::Bitonic>(node, ts_partner[node], ts_depth));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,144 @@
|
|||||||
|
/**
|
||||||
|
* \file
|
||||||
|
* \brief PDS HW2 tests
|
||||||
|
*
|
||||||
|
* \author
|
||||||
|
* Christos Choutouridis AEM:8997
|
||||||
|
* <cchoutou@ece.auth.gr>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <gtest/gtest.h>
|
||||||
|
|
||||||
|
#include <algorithm> // rand/srand
|
||||||
|
#include <ctime> // rand/srand
|
||||||
|
#include "distsort.hpp"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* ================================== ascending ================================== */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* bool ascending<SortMode::Bubbletonic>(mpi_id_t node, size_t depth);
|
||||||
|
*/
|
||||||
|
TEST(TdistBubbletonic_UT, ascending_Bubbletonic_test1) {
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bubbletonic>(0, 0), true);
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bubbletonic>(1, 0), false);
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bubbletonic>(2, 0), true);
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bubbletonic>(3, 0), false);
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bubbletonic>(4, 0), true);
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bubbletonic>(5, 0), false);
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bubbletonic>(6, 0), true);
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bubbletonic>(7, 0), false);
|
||||||
|
|
||||||
|
for (mpi_id_t node = 0 ; node < 256 ; ++node) {
|
||||||
|
EXPECT_EQ(ascending<SortMode::Bubbletonic>(node, 7), ((node % 2) ? false : true) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ================================== partner ================================== */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* mpi_id_t partner<SortMode::Bubbletonic>(mpi_id_t node, size_t step);
|
||||||
|
* step = 0
|
||||||
|
*/
|
||||||
|
TEST(TdistBubbletonic_UT, partner_Bubbletonic_test1) {
|
||||||
|
size_t ts_step = 0;
|
||||||
|
mpi_id_t ts_expected[] = {1, 0, 3, 2, 5, 4, 7, 6};
|
||||||
|
|
||||||
|
for (mpi_id_t node = 0 ; node < 8 ; ++node) {
|
||||||
|
EXPECT_EQ(partner<SortMode::Bubbletonic>(node, ts_step), ts_expected[node]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* mpi_id_t partner<SortMode::Bubbletonic>(mpi_id_t node, size_t step);
|
||||||
|
* step = 1
|
||||||
|
*/
|
||||||
|
TEST(TdistBubbletonic_UT, partner_Bubbletonic_test2) {
|
||||||
|
size_t ts_step = 1;
|
||||||
|
mpi_id_t ts_expected[] = {(mpi_id_t)-1, 2, 1, 4, 3, 6, 5, 8};
|
||||||
|
|
||||||
|
for (mpi_id_t node = 0 ; node < 8 ; ++node) {
|
||||||
|
EXPECT_EQ(partner<SortMode::Bubbletonic>(node, ts_step), ts_expected[node]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* mpi_id_t partner<SortMode::Bubbletonic>(mpi_id_t node, size_t step);
|
||||||
|
* various steps
|
||||||
|
*/
|
||||||
|
TEST(TdistBubbletonic_UT, partner_Bubbletonic_test3) {
|
||||||
|
|
||||||
|
mpi_id_t ts_even_expected[] = {
|
||||||
|
1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14
|
||||||
|
};
|
||||||
|
mpi_id_t ts_odd_expected[] = {
|
||||||
|
(mpi_id_t)-1, 2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13, 16
|
||||||
|
};
|
||||||
|
|
||||||
|
for (size_t step = 0 ; step < 32 ; ++step) {
|
||||||
|
if (step % 2) {
|
||||||
|
for (mpi_id_t node = 0; node < 16; ++node) {
|
||||||
|
EXPECT_EQ(partner<SortMode::Bubbletonic>(node, step), ts_odd_expected[node]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
for (mpi_id_t node = 0; node < 16; ++node) {
|
||||||
|
EXPECT_EQ(partner<SortMode::Bubbletonic>(node, step), ts_even_expected[node]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ================================== keepSmall ================================== */
|
||||||
|
/*
|
||||||
|
* bool keepSmall<SortMode::Bubbletonic>(mpi_id_t node, mpi_id_t partner, size_t depth);
|
||||||
|
* Throw check (Not assert - ASSERT_DEATH)
|
||||||
|
*/
|
||||||
|
TEST(TdistBubbletonic_UT, keepsmall_test1) {
|
||||||
|
// node and partner must differ or else ...
|
||||||
|
EXPECT_THROW(keepSmall<SortMode::Bubbletonic>(0, 0, 0), std::runtime_error);
|
||||||
|
EXPECT_THROW(keepSmall<SortMode::Bubbletonic>(1, 1, 42), std::runtime_error);
|
||||||
|
EXPECT_THROW(keepSmall<SortMode::Bubbletonic>(7, 7, 42), std::runtime_error);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* bool keepSmall<SortMode::Bubbletonic>(mpi_id_t node, mpi_id_t partner, size_t depth);
|
||||||
|
*/
|
||||||
|
TEST(TdistBubbletonic_UT, keepsmall_test2) {
|
||||||
|
// Check various combinations
|
||||||
|
EXPECT_EQ(keepSmall<SortMode::Bubbletonic>(0, 1, 42), true);
|
||||||
|
EXPECT_EQ(keepSmall<SortMode::Bubbletonic>(0, 3, 42), true);
|
||||||
|
EXPECT_EQ(keepSmall<SortMode::Bubbletonic>(2, 1, 42), false);
|
||||||
|
EXPECT_EQ(keepSmall<SortMode::Bubbletonic>(7, 1, 42), false);
|
||||||
|
EXPECT_EQ(keepSmall<SortMode::Bubbletonic>(0, 1, 42), true);
|
||||||
|
EXPECT_EQ(keepSmall<SortMode::Bubbletonic>(7, 32, 42), true);
|
||||||
|
EXPECT_EQ(keepSmall<SortMode::Bubbletonic>(7, 1, 42), false);
|
||||||
|
EXPECT_EQ(keepSmall<SortMode::Bubbletonic>(4, 0, 42), false);
|
||||||
|
EXPECT_EQ(keepSmall<SortMode::Bubbletonic>(4, 9, 42), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ================================== isActive ================================== */
|
||||||
|
/*
|
||||||
|
* bool isActive(mpi_id_t node, size_t nodes);
|
||||||
|
* Throw check
|
||||||
|
*/
|
||||||
|
TEST(TdistBubbletonic_UT, isActive_test1) {
|
||||||
|
EXPECT_THROW(isActive(0, 0), std::runtime_error);
|
||||||
|
EXPECT_THROW(isActive(0, static_cast<size_t>(std::numeric_limits<mpi_id_t>::max()) + 1), std::runtime_error);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* bool isActive(mpi_id_t node, size_t nodes);
|
||||||
|
* Boundary 3 BVA
|
||||||
|
*/
|
||||||
|
TEST(TdistBubbletonic_UT, isActive_test2) {
|
||||||
|
EXPECT_EQ(isActive(-1, 8), false);
|
||||||
|
EXPECT_EQ(isActive(0, 8), true);
|
||||||
|
EXPECT_EQ(isActive(1, 8), true);
|
||||||
|
EXPECT_EQ(isActive(7, 8), true);
|
||||||
|
EXPECT_EQ(isActive(8, 8), false);
|
||||||
|
EXPECT_EQ(isActive(9, 8), false);
|
||||||
|
}
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
/**
|
||||||
|
* \file
|
||||||
|
* \brief PDS HW2 tests
|
||||||
|
*
|
||||||
|
* \author
|
||||||
|
* Christos Choutouridis AEM:8997
|
||||||
|
* <cchoutou@ece.auth.gr>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <gtest/gtest.h>
|
||||||
|
|
||||||
|
#include <algorithm> // rand/srand
|
||||||
|
#include <ctime> // rand/srand
|
||||||
|
#include "distsort.hpp"
|
||||||
|
|
||||||
|
|
||||||
|
/* ================================== fullSort ================================== */
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
TEST(TdistCommonUT, fullSort_test1) {
|
||||||
|
std::vector<uint8_t> ts_data = {3, 2, 1, 4, 5, 7, 8, 6};
|
||||||
|
std::vector<uint8_t> ts_expected = {1, 2, 3, 4, 5, 6, 7, 8};
|
||||||
|
bool ts_ascending = true;
|
||||||
|
|
||||||
|
fullSort(ts_data, ts_ascending);
|
||||||
|
EXPECT_EQ((ts_data == ts_expected), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(TdistCommonUT, fullSort_test2) {
|
||||||
|
std::vector<uint8_t> ts_data = {3, 2, 1, 4, 5, 7, 8, 6};
|
||||||
|
std::vector<uint8_t> ts_expected = {8, 7, 6, 5, 4, 3, 2, 1};
|
||||||
|
bool ts_ascending = false;
|
||||||
|
|
||||||
|
fullSort(ts_data, ts_ascending);
|
||||||
|
EXPECT_EQ((ts_data == ts_expected), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ================================== elbowSort ================================== */
|
||||||
|
|
||||||
|
TEST(TdistCommonUT, elbowSort_test1) {
|
||||||
|
ShadowedVec_t<uint8_t> ts_data1(std::vector<uint8_t>{3, 2, 1, 4, 5, 5, 7, 8});
|
||||||
|
ShadowedVec_t<uint8_t> ts_data2(std::vector<uint8_t>{4, 5, 7, 8, 5, 3, 2, 1});
|
||||||
|
ShadowedVec_t<uint8_t> ts_data3(std::vector<uint8_t>{1, 2, 3, 4, 5, 5, 7, 8});
|
||||||
|
ShadowedVec_t<uint8_t> ts_data4(std::vector<uint8_t>{8, 7, 5, 5, 4, 3, 2, 1});
|
||||||
|
std::vector<uint8_t> ts_expected = {1, 2, 3, 4, 5, 5, 7, 8};
|
||||||
|
bool ts_ascending = true;
|
||||||
|
|
||||||
|
elbowSort(ts_data1, ts_ascending);
|
||||||
|
elbowSort(ts_data2, ts_ascending);
|
||||||
|
elbowSort(ts_data3, ts_ascending);
|
||||||
|
elbowSort(ts_data4, ts_ascending);
|
||||||
|
EXPECT_EQ((ts_data1 == ts_expected), true);
|
||||||
|
EXPECT_EQ((ts_data2 == ts_expected), true);
|
||||||
|
EXPECT_EQ((ts_data3 == ts_expected), true);
|
||||||
|
EXPECT_EQ((ts_data4 == ts_expected), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(TdistCommonUT, elbowSort_test2) {
|
||||||
|
ShadowedVec_t<uint8_t> ts_data1(std::vector<uint8_t>{3, 2, 1, 4, 5, 5, 7, 8});
|
||||||
|
ShadowedVec_t<uint8_t> ts_data2(std::vector<uint8_t>{4, 5, 7, 8, 5, 3, 2, 1});
|
||||||
|
ShadowedVec_t<uint8_t> ts_data3(std::vector<uint8_t>{1, 2, 3, 4, 5, 5, 7, 8});
|
||||||
|
ShadowedVec_t<uint8_t> ts_data4(std::vector<uint8_t>{8, 7, 5, 5, 4, 3, 2, 1});
|
||||||
|
std::vector<uint8_t> ts_expected = {8, 7, 5, 5, 4, 3, 2, 1};
|
||||||
|
bool ts_ascending = false;
|
||||||
|
|
||||||
|
elbowSort(ts_data1, ts_ascending);
|
||||||
|
elbowSort(ts_data2, ts_ascending);
|
||||||
|
elbowSort(ts_data3, ts_ascending);
|
||||||
|
elbowSort(ts_data4, ts_ascending);
|
||||||
|
EXPECT_EQ((ts_data1 == ts_expected), true);
|
||||||
|
EXPECT_EQ((ts_data2 == ts_expected), true);
|
||||||
|
EXPECT_EQ((ts_data3 == ts_expected), true);
|
||||||
|
EXPECT_EQ((ts_data4 == ts_expected), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(TdistCommonUT, elbowSort_test3) {
|
||||||
|
ShadowedVec_t<uint8_t> ts_data(std::vector<uint8_t>{8, 7, 5, 5, 4, 3, 2, 1});
|
||||||
|
std::vector<uint8_t> ts_expected_asc = {1, 2, 3, 4, 5, 5, 7, 8};
|
||||||
|
std::vector<uint8_t> ts_expected_des = {8, 7, 5, 5, 4, 3, 2, 1};
|
||||||
|
|
||||||
|
// Check alternation for active-shadow vector inside Buffer and elbow algorithm
|
||||||
|
elbowSort(ts_data, true);
|
||||||
|
EXPECT_EQ((ts_data == ts_expected_asc), true);
|
||||||
|
elbowSort(ts_data, false);
|
||||||
|
EXPECT_EQ((ts_data == ts_expected_des), true);
|
||||||
|
elbowSort(ts_data, true);
|
||||||
|
EXPECT_EQ((ts_data == ts_expected_asc), true);
|
||||||
|
elbowSort(ts_data, false);
|
||||||
|
EXPECT_EQ((ts_data == ts_expected_des), true);
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,211 @@
|
|||||||
|
/**
|
||||||
|
* \file
|
||||||
|
* \brief PDS HW2 tests
|
||||||
|
*
|
||||||
|
* To run these test execute:
|
||||||
|
* export OMP_NUM_THREADS=4 # optional to see parallelization speed-up
|
||||||
|
* make tests
|
||||||
|
* mpirun -np <N> ./out/tests
|
||||||
|
*
|
||||||
|
* Note:
|
||||||
|
* Yes each process runs the entire test suite!!
|
||||||
|
*
|
||||||
|
* \author
|
||||||
|
* Christos Choutouridis AEM:8997
|
||||||
|
* <cchoutou@ece.auth.gr>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <gtest/gtest.h>
|
||||||
|
#include <mpi.h>
|
||||||
|
#include <random>
|
||||||
|
#include "distsort.hpp"
|
||||||
|
/*
|
||||||
|
* Global fixtures
|
||||||
|
*/
|
||||||
|
|
||||||
|
// MPI handler for the test session
|
||||||
|
MPI_t<> ts_mpi;
|
||||||
|
|
||||||
|
// Mersenne seeded from hw if possible. range: [type_min, type_max]
|
||||||
|
std::random_device rd;
|
||||||
|
std::mt19937 gen(rd());
|
||||||
|
|
||||||
|
class TMPIdistSort : public ::testing::Test {
|
||||||
|
protected:
|
||||||
|
static void SetUpTestSuite() {
|
||||||
|
int argc = 0;
|
||||||
|
char** argv = nullptr;
|
||||||
|
ts_mpi.init(&argc, &argv);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void TearDownTestSuite() {
|
||||||
|
ts_mpi.finalize();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* MPI: SysTest (acceptance)
|
||||||
|
* Each process executes distBubbletonic for uin8_t [16]
|
||||||
|
*/
|
||||||
|
TEST_F(TMPIdistSort, distBubbletonic_test1) {
|
||||||
|
// Create and fill vector
|
||||||
|
using tsValue_t = uint8_t; // Test parameters
|
||||||
|
size_t ts_buffer_size = 16;
|
||||||
|
|
||||||
|
ShadowedVec_t<tsValue_t> ts_Data;
|
||||||
|
std::uniform_int_distribution<tsValue_t > dis(
|
||||||
|
std::numeric_limits<tsValue_t>::min(),
|
||||||
|
std::numeric_limits<tsValue_t>::max()
|
||||||
|
);
|
||||||
|
ts_Data.resize(ts_buffer_size);
|
||||||
|
std::generate(ts_Data.begin(), ts_Data.end(), [&]() { return dis(gen); });
|
||||||
|
|
||||||
|
// Execute function under test in all processes
|
||||||
|
distBubbletonic(ts_Data, ts_mpi.size(), ts_mpi.rank());
|
||||||
|
|
||||||
|
// Local min and max
|
||||||
|
auto local_min = *std::min_element(ts_Data.begin(), ts_Data.end());
|
||||||
|
auto local_max = *std::max_element(ts_Data.begin(), ts_Data.end());
|
||||||
|
|
||||||
|
// Gather min/max to rank 0
|
||||||
|
std::vector<tsValue_t> global_mins(ts_mpi.size());
|
||||||
|
std::vector<tsValue_t> global_maxes(ts_mpi.size());
|
||||||
|
MPI_Datatype datatype = MPI_TypeMapper<tsValue_t>::getType();
|
||||||
|
|
||||||
|
MPI_Gather(&local_min, 1, datatype, global_mins.data(), 1, datatype, 0, MPI_COMM_WORLD);
|
||||||
|
MPI_Gather(&local_max, 1, datatype, global_maxes.data(), 1, datatype, 0, MPI_COMM_WORLD);
|
||||||
|
|
||||||
|
// Check results
|
||||||
|
EXPECT_EQ(std::is_sorted(ts_Data.begin(), ts_Data.end()), true);
|
||||||
|
if (ts_mpi.rank() == 0) {
|
||||||
|
for (size_t i = 1; i < global_mins.size(); ++i) {
|
||||||
|
EXPECT_LE(global_maxes[i - 1], global_mins[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* MPI: SysTest (acceptance)
|
||||||
|
* Each process executes distBubbletonic for uin32_t [1 << 16]
|
||||||
|
*/
|
||||||
|
TEST_F(TMPIdistSort, distBubbletonic_test2) {
|
||||||
|
// Create and fill vector
|
||||||
|
using tsValue_t = uint32_t; // Test parameters
|
||||||
|
size_t ts_buffer_size = 1 << 16;
|
||||||
|
|
||||||
|
ShadowedVec_t<tsValue_t> ts_Data;
|
||||||
|
std::uniform_int_distribution<tsValue_t > dis(
|
||||||
|
std::numeric_limits<tsValue_t>::min(),
|
||||||
|
std::numeric_limits<tsValue_t>::max()
|
||||||
|
);
|
||||||
|
ts_Data.resize(ts_buffer_size);
|
||||||
|
std::generate(ts_Data.begin(), ts_Data.end(), [&]() { return dis(gen); });
|
||||||
|
|
||||||
|
// Execute function under test in all processes
|
||||||
|
distBubbletonic(ts_Data, ts_mpi.size(), ts_mpi.rank());
|
||||||
|
|
||||||
|
// Local min and max
|
||||||
|
auto local_min = *std::min_element(ts_Data.begin(), ts_Data.end());
|
||||||
|
auto local_max = *std::max_element(ts_Data.begin(), ts_Data.end());
|
||||||
|
|
||||||
|
// Gather min/max to rank 0
|
||||||
|
std::vector<tsValue_t> global_mins(ts_mpi.size());
|
||||||
|
std::vector<tsValue_t> global_maxes(ts_mpi.size());
|
||||||
|
MPI_Datatype datatype = MPI_TypeMapper<tsValue_t>::getType();
|
||||||
|
|
||||||
|
MPI_Gather(&local_min, 1, datatype, global_mins.data(), 1, datatype, 0, MPI_COMM_WORLD);
|
||||||
|
MPI_Gather(&local_max, 1, datatype, global_maxes.data(), 1, datatype, 0, MPI_COMM_WORLD);
|
||||||
|
|
||||||
|
// Check results
|
||||||
|
EXPECT_EQ(std::is_sorted(ts_Data.begin(), ts_Data.end()), true);
|
||||||
|
if (ts_mpi.rank() == 0) {
|
||||||
|
for (size_t i = 1; i < global_mins.size(); ++i) {
|
||||||
|
EXPECT_LE(global_maxes[i - 1], global_mins[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* MPI: SysTest (acceptance)
|
||||||
|
* Each process executes distBitonic for uin8_t [16]
|
||||||
|
*/
|
||||||
|
TEST_F(TMPIdistSort, distBitonic_test1) {
|
||||||
|
// Create and fill vector
|
||||||
|
using tsValue_t = uint8_t; // Test parameters
|
||||||
|
size_t ts_buffer_size = 16;
|
||||||
|
|
||||||
|
ShadowedVec_t<tsValue_t> ts_Data;
|
||||||
|
std::uniform_int_distribution<tsValue_t > dis(
|
||||||
|
std::numeric_limits<tsValue_t>::min(),
|
||||||
|
std::numeric_limits<tsValue_t>::max()
|
||||||
|
);
|
||||||
|
ts_Data.resize(ts_buffer_size);
|
||||||
|
std::generate(ts_Data.begin(), ts_Data.end(), [&]() { return dis(gen); });
|
||||||
|
|
||||||
|
// Execute function under test in all processes
|
||||||
|
distBitonic(ts_Data, ts_mpi.size(), ts_mpi.rank());
|
||||||
|
|
||||||
|
// Local min and max
|
||||||
|
auto local_min = *std::min_element(ts_Data.begin(), ts_Data.end());
|
||||||
|
auto local_max = *std::max_element(ts_Data.begin(), ts_Data.end());
|
||||||
|
|
||||||
|
// Gather min/max to rank 0
|
||||||
|
std::vector<tsValue_t> global_mins(ts_mpi.size());
|
||||||
|
std::vector<tsValue_t> global_maxes(ts_mpi.size());
|
||||||
|
MPI_Datatype datatype = MPI_TypeMapper<tsValue_t>::getType();
|
||||||
|
|
||||||
|
MPI_Gather(&local_min, 1, datatype, global_mins.data(), 1, datatype, 0, MPI_COMM_WORLD);
|
||||||
|
MPI_Gather(&local_max, 1, datatype, global_maxes.data(), 1, datatype, 0, MPI_COMM_WORLD);
|
||||||
|
|
||||||
|
// Check results
|
||||||
|
EXPECT_EQ(std::is_sorted(ts_Data.begin(), ts_Data.end()), true);
|
||||||
|
if (ts_mpi.rank() == 0) {
|
||||||
|
for (size_t i = 1; i < global_mins.size(); ++i) {
|
||||||
|
EXPECT_LE(global_maxes[i - 1], global_mins[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* MPI: SysTest (acceptance)
|
||||||
|
* Each process executes distBitonic for uin32_t [1 << 16]
|
||||||
|
*/
|
||||||
|
TEST_F(TMPIdistSort, distBitonic_test2) {
|
||||||
|
// Create and fill vector
|
||||||
|
using tsValue_t = uint32_t; // Test parameters
|
||||||
|
size_t ts_buffer_size = 1 << 16;
|
||||||
|
|
||||||
|
ShadowedVec_t<tsValue_t> ts_Data;
|
||||||
|
std::uniform_int_distribution<tsValue_t > dis(
|
||||||
|
std::numeric_limits<tsValue_t>::min(),
|
||||||
|
std::numeric_limits<tsValue_t>::max()
|
||||||
|
);
|
||||||
|
ts_Data.resize(ts_buffer_size);
|
||||||
|
std::generate(ts_Data.begin(), ts_Data.end(), [&]() { return dis(gen); });
|
||||||
|
|
||||||
|
// Execute function under test in all processes
|
||||||
|
distBitonic(ts_Data, ts_mpi.size(), ts_mpi.rank());
|
||||||
|
|
||||||
|
// Local min and max
|
||||||
|
auto local_min = *std::min_element(ts_Data.begin(), ts_Data.end());
|
||||||
|
auto local_max = *std::max_element(ts_Data.begin(), ts_Data.end());
|
||||||
|
|
||||||
|
// Gather min/max to rank 0
|
||||||
|
std::vector<tsValue_t> global_mins(ts_mpi.size());
|
||||||
|
std::vector<tsValue_t> global_maxes(ts_mpi.size());
|
||||||
|
MPI_Datatype datatype = MPI_TypeMapper<tsValue_t>::getType();
|
||||||
|
|
||||||
|
MPI_Gather(&local_min, 1, datatype, global_mins.data(), 1, datatype, 0, MPI_COMM_WORLD);
|
||||||
|
MPI_Gather(&local_max, 1, datatype, global_maxes.data(), 1, datatype, 0, MPI_COMM_WORLD);
|
||||||
|
|
||||||
|
// Check results
|
||||||
|
EXPECT_EQ(std::is_sorted(ts_Data.begin(), ts_Data.end()), true);
|
||||||
|
if (ts_mpi.rank() == 0) {
|
||||||
|
for (size_t i = 1; i < global_mins.size(); ++i) {
|
||||||
|
EXPECT_LE(global_maxes[i - 1], global_mins[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user