From 86330f1db7d6e2e5c5e70774df02d2ee0517dab1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Fritze?= Date: Tue, 3 Sep 2024 13:39:47 +0200 Subject: [PATCH] remove the MPI functionality --- .github/workflows/test_mpi.yml | 69 ------- README.md | 3 +- docs/examples/plotting.md | 2 +- pytimings/mpi.py | 74 ------- pytimings/timer.py | 52 ++--- pytimings/tools.py | 8 +- tests/data/nested.mpi_True.pickle | 186 ------------------ ...{nested.mpi_False.pickle => nested.pickle} | 0 tests/fixtures.py | 64 +----- tests/test_example_data.py | 2 +- tests/test_output.py | 8 +- .../test_output/test_output_all_measures.txt | 12 ++ .../test_output_all_measures_False__r1.txt | 22 --- .../test_output_all_measures_True__r1.txt | 22 --- tests/test_output/test_output_per_rank.txt | 12 ++ .../test_output_per_rank_False_.txt | 22 --- .../test_output_per_rank_True_.txt | 22 --- tests/test_output/test_output_simple.txt | 12 ++ .../test_output/test_output_simple_False_.txt | 22 --- .../test_output/test_output_simple_True_.txt | 22 --- 20 files changed, 57 insertions(+), 579 deletions(-) delete mode 100644 .github/workflows/test_mpi.yml delete mode 100644 pytimings/mpi.py delete mode 100644 tests/data/nested.mpi_True.pickle rename tests/data/{nested.mpi_False.pickle => nested.pickle} (100%) create mode 100644 tests/test_output/test_output_all_measures.txt delete mode 100644 tests/test_output/test_output_all_measures_False__r1.txt delete mode 100644 tests/test_output/test_output_all_measures_True__r1.txt create mode 100644 tests/test_output/test_output_per_rank.txt delete mode 100644 tests/test_output/test_output_per_rank_False_.txt delete mode 100644 tests/test_output/test_output_per_rank_True_.txt create mode 100644 tests/test_output/test_output_simple.txt delete mode 100644 tests/test_output/test_output_simple_False_.txt delete mode 100644 tests/test_output/test_output_simple_True_.txt diff --git a/.github/workflows/test_mpi.yml b/.github/workflows/test_mpi.yml deleted file mode 100644 index 3683ac4..0000000 --- a/.github/workflows/test_mpi.yml +++ /dev/null @@ -1,69 +0,0 @@ -on: - push: - branches: - - main - pull_request: - branches: - - main - -name: paralell pytest -jobs: - py-check: - runs-on: ${{ matrix.config.os }} - name: ${{ matrix.config.os }} (${{ matrix.config.py }}) - strategy: - fail-fast: false - matrix: - config: - - {os: windows-2022, py: '3.12'} - - {os: macOS-14, py: '3.11'} - - {os: ubuntu-24.04, py: '3.10'} - - {os: ubuntu-24.04, py: '3.12'} - - env: - SDKROOT: /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.12.1 - with: - access_token: ${{ github.token }} - - name: Checkout - uses: actions/checkout@v4 - - name: Setup Python - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.config.py }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - python -m pip install .[ci] - - name: Install MPI (linux) - if: contains(matrix.config.os, 'ubuntu') - run: | - sudo apt-get update - sudo apt-get install -y mpi-default-dev - pip install mpi4py - - name: Download Microsoft MPI - if: contains(matrix.config.os, 'windows') - run: (new-object net.webclient).DownloadFile("https://download.microsoft.com/download/a/5/2/a5207ca5-1203-491a-8fb8-906fd68ae623/msmpisetup.exe", - "msmpisetup.exe") - shell: powershell - - name: Install MPI (win) - if: contains(matrix.config.os, 'windows') - run: | - msmpisetup.exe -unattend -minimal - pip install mpi4py - shell: cmd - - name: Install MPI (osx) - if: contains(matrix.config.os, 'macOS') - run: | - brew install openmpi - pip install mpi4py - - name: (disabled) run pytest - if: contains(matrix.config.os, 'windows') - run: | - print mpiexec -n 2 pytest - - name: (disabled) run pytest - if: ${{ ! contains(matrix.config.os, 'windows') }} - run: | - echo mpirun -np 2 pytest diff --git a/README.md b/README.md index fcbe041..cc21781 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ PyTimings -MPI Aware section timings +Section timings - Free software: BSD license - Documentation: . @@ -18,7 +18,6 @@ Features -------- - Automatic, decorator-based code timings -- Aware of MPI parallel runs - manual control - structured (CSV/terminal) output - matplotlib plotting of results diff --git a/docs/examples/plotting.md b/docs/examples/plotting.md index f22ad63..d4b37e9 100644 --- a/docs/examples/plotting.md +++ b/docs/examples/plotting.md @@ -40,5 +40,5 @@ We'll then read those example files. from pytimings.processing import csv_to_dataframe dataframe = csv_to_dataframe(filenames, sort=True) -dataframe.plot(x='pytimings::data::run', y=['quadratic_max_wall', 'linear_max_wall'], logy=True) +dataframe.plot(x='pytimings::data::run', y=['quadratic_wall', 'linear_wall'], logy=True) ``` diff --git a/pytimings/mpi.py b/pytimings/mpi.py deleted file mode 100644 index 8d3ef61..0000000 --- a/pytimings/mpi.py +++ /dev/null @@ -1,74 +0,0 @@ -try: - from mpi4py import MPI - - HAVE_MPI = True -except ImportError: - HAVE_MPI = False - - -class _SerialCommunicationWrapper: - """Minimal no-MPI abstraction around needed collective communication operations - - This class should not be instantiated directly. Use `get_communication_wrapper instead`""" - - def __init__(self, mpi_communicator=None): - if mpi_communicator is not None: - # TODO log debug - pass - self._comm = mpi_communicator - self.rank = 0 - self.size = 1 - - def sum(self, local_value): - return local_value - - def max(self, local_value): - return local_value - - -class DummyCommunicator: - rank = 0 - size = 1 - - -if HAVE_MPI: - - class _MPICommunicationWrapper: - """Minimal MPI abstraction around needed collective communication operations - - This class should not be instantiated directly. Use `get_communication_wrapper instead`""" - - def __init__(self, mpi_communicator=None): - self._comm = mpi_communicator or get_communicator() - self.rank = self._comm.rank - self.size = self._comm.size - - def sum(self, local_value): - lsum = self._comm.reduce(local_value, MPI.SUM) - return lsum - - def max(self, local_value): - lsum = self._comm.reduce(local_value, MPI.MAX) - return lsum - - _CommunicationWrapper = _MPICommunicationWrapper -else: - _CommunicationWrapper = _SerialCommunicationWrapper - - -def get_communication_wrapper(mpi_communicator=None): - if HAVE_MPI: - return _MPICommunicationWrapper(mpi_communicator) - return _SerialCommunicationWrapper(mpi_communicator) - - -def get_local_communicator(): - if HAVE_MPI: - return MPI.COMM_SELF - return DummyCommunicator() - - -def get_communicator(): - if HAVE_MPI: - return MPI.COMM_WORLD - return DummyCommunicator() diff --git a/pytimings/timer.py b/pytimings/timer.py index 8e5457f..acfb4a8 100644 --- a/pytimings/timer.py +++ b/pytimings/timer.py @@ -16,11 +16,6 @@ import psutil import pytimings -from pytimings.mpi import ( - get_communication_wrapper, - get_communicator, - get_local_communicator, -) from pytimings.tools import ensure_directory_exists try: @@ -153,30 +148,14 @@ def delta(self, section_name: str) -> dict[str, int]: except KeyError: raise NoTimerError(section_name, self) # noqa: B904 - def output_files(self, output_dir: Path, csv_base: str, per_rank=False) -> None | Path: - """creates one file local to each MPI-rank (no global averaging) - and one single rank-0 file with all combined/averaged measures - - - """ - communication = get_communication_wrapper() - rank = communication.rank - + def output_files(self, output_dir: Path, csv_base: str) -> Path: + """output all recorded measures to a csv file""" output_dir = Path(output_dir) ensure_directory_exists(output_dir) - if per_rank: - filename = output_dir / f"{csv_base}_p{rank:08d}.csv" - with open(filename, "w") as outfile: # noqa: PTH123 - self.output_all_measures(outfile, get_local_communicator()) - tmp_out = StringIO() - # all ranks have to participate in the data generation - self.output_all_measures(tmp_out, get_communicator()) - # but only rank 0 needs to write it - if rank == 0: - a_filename = output_dir / f"{csv_base}.csv" - tmp_out.seek(0) - open(a_filename, "w").write(tmp_out.read()) # noqa: PTH123 - return a_filename + outfile = output_dir / f"{csv_base}.csv" + with outfile.open("w") as out: + self.output_all_measures(out) + return outfile def output_console(self): """outputs walltime only w/o MPI-rank averaging""" @@ -204,14 +183,12 @@ def output_console(self): else: csl.print("No timings were recorded") - def output_all_measures(self, out=None, mpi_comm=None) -> None: + def output_all_measures(self, out=None) -> None: """output all recorded measures Outputs average, min, max over all MPI processes associated to mpi_comm """ out = out or sys.stdout - mpi_comm = mpi_comm or get_communicator() - comm = get_communication_wrapper(mpi_comm) stash = StringIO() csv_file = csv.writer(stash, lineterminator="\n") # header @@ -219,9 +196,6 @@ def output_all_measures(self, out=None, mpi_comm=None) -> None: # threadManager().max_threads() csv_file.writerow(["threads", 1]) - csv_file.writerow(["ranks", comm.size]) - - weight = 1 / comm.size for section, delta in self._commited_deltas.items(): delta = delta._asdict() # noqa: PLW2901 @@ -230,12 +204,9 @@ def output_all_measures(self, out=None, mpi_comm=None) -> None: syst = delta[SYS_TIME] csv_file.writerows( [ - [f"{section}_avg_usr", comm.sum(usr) * weight], - [f"{section}_max_usr", comm.max(usr)], - [f"{section}_avg_wall", comm.sum(wall) * weight], - [f"{section}_max_wall", comm.max(wall)], - [f"{section}_avg_sys", comm.sum(syst) * weight], - [f"{section}_max_sys", comm.max(syst)], + [f"{section}_usr", usr], + [f"{section}_wall", wall], + [f"{section}_sys", syst], ] ) csv_file.writerows([[f"pytimings::data::{k}", v] for k, v in self.extra_data.items()]) @@ -247,8 +218,7 @@ def output_all_measures(self, out=None, mpi_comm=None) -> None: ) csv_file.writerow(["pytimings::data::_version", pytimings.__version__]) stash.seek(0) - if comm.rank == 0: - shutil.copyfileobj(stash, out) + shutil.copyfileobj(stash, out) def add_extra_data(self, data: [dict]): """Use this for something configuration data that makes the csv more informative. diff --git a/pytimings/tools.py b/pytimings/tools.py index e5ed6e9..5bec128 100644 --- a/pytimings/tools.py +++ b/pytimings/tools.py @@ -60,11 +60,5 @@ def generate_example_data(output_dir, number_of_runs=10): busywait(number_of_runs / 10 / i) with scoped_timing("quadratic", timings=timings): busywait(number_of_runs / 10 / i**2) - files.append( - timings.output_files( - output_dir=output_dir, - csv_base=f"example_speedup_{i:05}", - per_rank=False, - ) - ) + files.append(timings.output_files(output_dir=output_dir, csv_base=f"example_speedup_{i:05}")) return files diff --git a/tests/data/nested.mpi_True.pickle b/tests/data/nested.mpi_True.pickle deleted file mode 100644 index b897821..0000000 --- a/tests/data/nested.mpi_True.pickle +++ /dev/null @@ -1,186 +0,0 @@ -ccopy_reg -_reconstructor -p0 -(cpytimings.timer -Timings -p1 -c__builtin__ -object -p2 -Ntp3 -Rp4 -(dp5 -V_commited_deltas -p6 -(dp7 -Vroot_section.nested_1.leaf_section -p8 -g0 -(cpytimings.timer -TimingDelta -p9 -c__builtin__ -tuple -p10 -(F300.56171 -F0.08000000000174623 -F0.39000000001396984 -tp11 -tp12 -Rp13 -sVroot_section.nested_1 -p14 -g0 -(g9 -g10 -(F501.107784 -F0.14000000001396984 -F0.6400000000139698 -tp15 -tp16 -Rp17 -sVroot_section -p18 -g0 -(g9 -g10 -(F601.58015 -F0.15000000000873115 -F0.7199999999720603 -tp19 -tp20 -Rp21 -ssV_known_timers_map -p22 -ccollections -defaultdict -p23 -(cpytimings.timer -_default_timer_dict_entry -p24 -tp25 -Rp26 -g18 -(I00 -g0 -(cpytimings.timer -TimingData -p27 -g2 -Ntp28 -Rp29 -(dp30 -Vname -p31 -g18 -sV_end_resources -p32 -NsV_end_times -p33 -(dp34 -Vuser -p35 -F681494.78 -sVsys -p36 -F85358.57 -sVidle -p37 -F532120.82 -sVwall -p38 -L449826888875115L -sVthread -p39 -L1615216856835530944L -ssV_start_times -p40 -(dp41 -g35 -F681494.06 -sg36 -F85358.42 -sg37 -F532116.91 -sg38 -L449826287294965L -sg39 -L1615216856233951231L -ssbtp42 -sg14 -(I00 -g0 -(g27 -g2 -Ntp43 -Rp44 -(dp45 -g31 -g14 -sg32 -Nsg33 -(dp46 -g35 -F681494.78 -sg36 -F85358.57 -sg37 -F532120.82 -sg38 -L449826888779983L -sg39 -L1615216856835435811L -ssg40 -(dp47 -g35 -F681494.14 -sg36 -F85358.43 -sg37 -F532117.63 -sg38 -L449826387672199L -sg39 -L1615216856334329208L -ssbtp48 -sg8 -(I00 -g0 -(g27 -g2 -Ntp49 -Rp50 -(dp51 -g31 -g8 -sg32 -Nsg33 -(dp52 -g35 -F681494.78 -sg36 -F85358.57 -sg37 -F532120.82 -sg38 -L449826888657519L -sg39 -L1615216856835314458L -ssg40 -(dp53 -g35 -F681494.39 -sg36 -F85358.49 -sg37 -F532118.91 -sg38 -L449826588095809L -sg39 -L1615216856534752262L -ssbtp54 -ssV_csv_sep -p55 -V, -p56 -sb. diff --git a/tests/data/nested.mpi_False.pickle b/tests/data/nested.pickle similarity index 100% rename from tests/data/nested.mpi_False.pickle rename to tests/data/nested.pickle diff --git a/tests/fixtures.py b/tests/fixtures.py index ac9f8cb..5b92fc2 100644 --- a/tests/fixtures.py +++ b/tests/fixtures.py @@ -1,80 +1,24 @@ import pickle -import re import sys import pytest -from pytest_regressions.data_regression import DataRegressionFixture -from pytest_regressions.file_regression import FileRegressionFixture -from pytest_regressions.num_regression import NumericRegressionFixture - -from pytimings import mpi - -USE_MPI = [False] -if mpi.HAVE_MPI: - USE_MPI.append(True) - - -@pytest.fixture(params=USE_MPI) -def use_mpi(request, monkeypatch): - use_mpi = request.param - if (not use_mpi) and mpi.HAVE_MPI: - monkeypatch.delattr("mpi4py.MPI") - monkeypatch.setattr("pytimings.mpi.HAVE_MPI", False) @pytest.fixture -def timings_object(request, use_mpi): +def timings_object(request): from pytimings.timer import Timings return Timings() @pytest.fixture -def pickled_timings_object(request, use_mpi, shared_datadir): - filename = f"nested.mpi_{mpi.HAVE_MPI}.pickle" - obj = pickle.load(open(shared_datadir / filename, "rb")) # noqa: PTH123 +def pickled_timings_object(request, shared_datadir): + filename = "nested.pickle" + obj = pickle.loads((shared_datadir / filename).read_bytes()) obj.extra_data = {} return obj -def _make_regression_fixture(base_type, fname): - def check(self, data_dict, basename=None, fullpath=None): - """ - - :param data_dict: the data to check - :param basename: unless explicitly set, defaults to test name with rank count appended - :param fullpath: part of the origianl API, but cannot be used (mutually exclusive in super class - with setting basename - """ - assert fullpath is None - if basename is None: - super_basename = re.sub(r"[\W]", "_", self.request.node.name) - ranks = mpi.get_communication_wrapper().size - assert ranks > 0 - basename = f"{super_basename}_r{ranks}" - print(f"checking basename {basename}") - super(self.__class__, self).check(data_dict, basename=basename) - - new_type = type(f"Mpi{base_type.__name__}", (base_type,), {"check": check}) - - @pytest.fixture() - def maker(datadir, original_datadir, request): - return new_type(datadir, original_datadir, request) - - maker.__name__ = fname - return new_type, maker - - -for _rtype, _fname in ( - (DataRegressionFixture, "data_regression"), - (NumericRegressionFixture, "num_regression"), - (FileRegressionFixture, "file_regression"), -): - _fname = f"mpi_{_fname}" - _new_type, _fixture = _make_regression_fixture(_rtype, _fname) - locals()[_fname] = _fixture - - def is_windows_platform(): return sys.platform == "win32" or sys.platform == "cygwin" diff --git a/tests/test_example_data.py b/tests/test_example_data.py index 7219a1f..18737b2 100644 --- a/tests/test_example_data.py +++ b/tests/test_example_data.py @@ -34,7 +34,7 @@ def test_generate_example_data_creates_files_with_correct_names(): patch("pytimings.tools.busywait"), ): mock_timings = MockTimings.return_value - mock_timings.output_files.side_effect = lambda output_dir, csv_base, per_rank: f"{csv_base}.csv" + mock_timings.output_files.side_effect = lambda output_dir, csv_base: f"{csv_base}.csv" files = generate_example_data("mock_output_dir", number_of_runs=3) assert files == ["example_speedup_00001.csv", "example_speedup_00002.csv"] diff --git a/tests/test_output.py b/tests/test_output.py index 13907ec..7807a8b 100644 --- a/tests/test_output.py +++ b/tests/test_output.py @@ -1,7 +1,6 @@ from io import StringIO import pytimings -from pytimings import mpi from pytimings.processing import csv_to_dataframe from pytimings.tools import generate_example_data @@ -12,12 +11,12 @@ def _content(fd): return "".join(fd.readlines()[:-1]) -def test_output_all_measures(pickled_timings_object, mpi_file_regression): +def test_output_all_measures(pickled_timings_object, file_regression): timing = pickled_timings_object with StringIO() as out: timing.output_all_measures(out) out.seek(0) - mpi_file_regression.check(_content(out)) + file_regression.check(_content(out)) def test_output_simple(pickled_timings_object, file_regression): @@ -38,9 +37,6 @@ def test_output_per_rank(pickled_timings_object, file_regression, tmp_path): def test_csv_to_dataframe(tmpdir): files = generate_example_data(tmpdir) - # checking/loading the files on makes sense on rank0 - if mpi.HAVE_MPI and mpi.get_communication_wrapper().rank != 0: - return assert all(f is not None for f in files), files assert all(f.is_file() for f in files), files frame = csv_to_dataframe(files) diff --git a/tests/test_output/test_output_all_measures.txt b/tests/test_output/test_output_all_measures.txt new file mode 100644 index 0000000..4bb70c0 --- /dev/null +++ b/tests/test_output/test_output_all_measures.txt @@ -0,0 +1,12 @@ +section,value +threads,1 +root_section.nested_1.leaf_section_usr,0.14000000001396984 +root_section.nested_1.leaf_section_wall,300.447047 +root_section.nested_1.leaf_section_sys,0.029999999998835847 +root_section.nested_1_usr,0.27000000001862645 +root_section.nested_1_wall,501.072164 +root_section.nested_1_sys,0.16000000000349246 +root_section_usr,0.35000000009313226 +root_section_wall,601.4659389999999 +root_section_sys,0.1900000000023283 +pytimings::data::_sections,root_section||root_section.nested_1||root_section.nested_1.leaf_section diff --git a/tests/test_output/test_output_all_measures_False__r1.txt b/tests/test_output/test_output_all_measures_False__r1.txt deleted file mode 100644 index 9627e21..0000000 --- a/tests/test_output/test_output_all_measures_False__r1.txt +++ /dev/null @@ -1,22 +0,0 @@ -section,value -threads,1 -ranks,1 -root_section.nested_1.leaf_section_avg_usr,0.14000000001396984 -root_section.nested_1.leaf_section_max_usr,0.14000000001396984 -root_section.nested_1.leaf_section_avg_wall,300.447047 -root_section.nested_1.leaf_section_max_wall,300.447047 -root_section.nested_1.leaf_section_avg_sys,0.029999999998835847 -root_section.nested_1.leaf_section_max_sys,0.029999999998835847 -root_section.nested_1_avg_usr,0.27000000001862645 -root_section.nested_1_max_usr,0.27000000001862645 -root_section.nested_1_avg_wall,501.072164 -root_section.nested_1_max_wall,501.072164 -root_section.nested_1_avg_sys,0.16000000000349246 -root_section.nested_1_max_sys,0.16000000000349246 -root_section_avg_usr,0.35000000009313226 -root_section_max_usr,0.35000000009313226 -root_section_avg_wall,601.4659389999999 -root_section_max_wall,601.4659389999999 -root_section_avg_sys,0.1900000000023283 -root_section_max_sys,0.1900000000023283 -pytimings::data::_sections,root_section||root_section.nested_1||root_section.nested_1.leaf_section diff --git a/tests/test_output/test_output_all_measures_True__r1.txt b/tests/test_output/test_output_all_measures_True__r1.txt deleted file mode 100644 index ffc005f..0000000 --- a/tests/test_output/test_output_all_measures_True__r1.txt +++ /dev/null @@ -1,22 +0,0 @@ -section,value -threads,1 -ranks,1 -root_section.nested_1.leaf_section_avg_usr,0.39000000001396984 -root_section.nested_1.leaf_section_max_usr,0.39000000001396984 -root_section.nested_1.leaf_section_avg_wall,300.56171 -root_section.nested_1.leaf_section_max_wall,300.56171 -root_section.nested_1.leaf_section_avg_sys,0.08000000000174623 -root_section.nested_1.leaf_section_max_sys,0.08000000000174623 -root_section.nested_1_avg_usr,0.6400000000139698 -root_section.nested_1_max_usr,0.6400000000139698 -root_section.nested_1_avg_wall,501.107784 -root_section.nested_1_max_wall,501.107784 -root_section.nested_1_avg_sys,0.14000000001396984 -root_section.nested_1_max_sys,0.14000000001396984 -root_section_avg_usr,0.7199999999720603 -root_section_max_usr,0.7199999999720603 -root_section_avg_wall,601.58015 -root_section_max_wall,601.58015 -root_section_avg_sys,0.15000000000873115 -root_section_max_sys,0.15000000000873115 -pytimings::data::_sections,root_section||root_section.nested_1||root_section.nested_1.leaf_section diff --git a/tests/test_output/test_output_per_rank.txt b/tests/test_output/test_output_per_rank.txt new file mode 100644 index 0000000..4bb70c0 --- /dev/null +++ b/tests/test_output/test_output_per_rank.txt @@ -0,0 +1,12 @@ +section,value +threads,1 +root_section.nested_1.leaf_section_usr,0.14000000001396984 +root_section.nested_1.leaf_section_wall,300.447047 +root_section.nested_1.leaf_section_sys,0.029999999998835847 +root_section.nested_1_usr,0.27000000001862645 +root_section.nested_1_wall,501.072164 +root_section.nested_1_sys,0.16000000000349246 +root_section_usr,0.35000000009313226 +root_section_wall,601.4659389999999 +root_section_sys,0.1900000000023283 +pytimings::data::_sections,root_section||root_section.nested_1||root_section.nested_1.leaf_section diff --git a/tests/test_output/test_output_per_rank_False_.txt b/tests/test_output/test_output_per_rank_False_.txt deleted file mode 100644 index 9627e21..0000000 --- a/tests/test_output/test_output_per_rank_False_.txt +++ /dev/null @@ -1,22 +0,0 @@ -section,value -threads,1 -ranks,1 -root_section.nested_1.leaf_section_avg_usr,0.14000000001396984 -root_section.nested_1.leaf_section_max_usr,0.14000000001396984 -root_section.nested_1.leaf_section_avg_wall,300.447047 -root_section.nested_1.leaf_section_max_wall,300.447047 -root_section.nested_1.leaf_section_avg_sys,0.029999999998835847 -root_section.nested_1.leaf_section_max_sys,0.029999999998835847 -root_section.nested_1_avg_usr,0.27000000001862645 -root_section.nested_1_max_usr,0.27000000001862645 -root_section.nested_1_avg_wall,501.072164 -root_section.nested_1_max_wall,501.072164 -root_section.nested_1_avg_sys,0.16000000000349246 -root_section.nested_1_max_sys,0.16000000000349246 -root_section_avg_usr,0.35000000009313226 -root_section_max_usr,0.35000000009313226 -root_section_avg_wall,601.4659389999999 -root_section_max_wall,601.4659389999999 -root_section_avg_sys,0.1900000000023283 -root_section_max_sys,0.1900000000023283 -pytimings::data::_sections,root_section||root_section.nested_1||root_section.nested_1.leaf_section diff --git a/tests/test_output/test_output_per_rank_True_.txt b/tests/test_output/test_output_per_rank_True_.txt deleted file mode 100644 index ffc005f..0000000 --- a/tests/test_output/test_output_per_rank_True_.txt +++ /dev/null @@ -1,22 +0,0 @@ -section,value -threads,1 -ranks,1 -root_section.nested_1.leaf_section_avg_usr,0.39000000001396984 -root_section.nested_1.leaf_section_max_usr,0.39000000001396984 -root_section.nested_1.leaf_section_avg_wall,300.56171 -root_section.nested_1.leaf_section_max_wall,300.56171 -root_section.nested_1.leaf_section_avg_sys,0.08000000000174623 -root_section.nested_1.leaf_section_max_sys,0.08000000000174623 -root_section.nested_1_avg_usr,0.6400000000139698 -root_section.nested_1_max_usr,0.6400000000139698 -root_section.nested_1_avg_wall,501.107784 -root_section.nested_1_max_wall,501.107784 -root_section.nested_1_avg_sys,0.14000000001396984 -root_section.nested_1_max_sys,0.14000000001396984 -root_section_avg_usr,0.7199999999720603 -root_section_max_usr,0.7199999999720603 -root_section_avg_wall,601.58015 -root_section_max_wall,601.58015 -root_section_avg_sys,0.15000000000873115 -root_section_max_sys,0.15000000000873115 -pytimings::data::_sections,root_section||root_section.nested_1||root_section.nested_1.leaf_section diff --git a/tests/test_output/test_output_simple.txt b/tests/test_output/test_output_simple.txt new file mode 100644 index 0000000..4bb70c0 --- /dev/null +++ b/tests/test_output/test_output_simple.txt @@ -0,0 +1,12 @@ +section,value +threads,1 +root_section.nested_1.leaf_section_usr,0.14000000001396984 +root_section.nested_1.leaf_section_wall,300.447047 +root_section.nested_1.leaf_section_sys,0.029999999998835847 +root_section.nested_1_usr,0.27000000001862645 +root_section.nested_1_wall,501.072164 +root_section.nested_1_sys,0.16000000000349246 +root_section_usr,0.35000000009313226 +root_section_wall,601.4659389999999 +root_section_sys,0.1900000000023283 +pytimings::data::_sections,root_section||root_section.nested_1||root_section.nested_1.leaf_section diff --git a/tests/test_output/test_output_simple_False_.txt b/tests/test_output/test_output_simple_False_.txt deleted file mode 100644 index 9627e21..0000000 --- a/tests/test_output/test_output_simple_False_.txt +++ /dev/null @@ -1,22 +0,0 @@ -section,value -threads,1 -ranks,1 -root_section.nested_1.leaf_section_avg_usr,0.14000000001396984 -root_section.nested_1.leaf_section_max_usr,0.14000000001396984 -root_section.nested_1.leaf_section_avg_wall,300.447047 -root_section.nested_1.leaf_section_max_wall,300.447047 -root_section.nested_1.leaf_section_avg_sys,0.029999999998835847 -root_section.nested_1.leaf_section_max_sys,0.029999999998835847 -root_section.nested_1_avg_usr,0.27000000001862645 -root_section.nested_1_max_usr,0.27000000001862645 -root_section.nested_1_avg_wall,501.072164 -root_section.nested_1_max_wall,501.072164 -root_section.nested_1_avg_sys,0.16000000000349246 -root_section.nested_1_max_sys,0.16000000000349246 -root_section_avg_usr,0.35000000009313226 -root_section_max_usr,0.35000000009313226 -root_section_avg_wall,601.4659389999999 -root_section_max_wall,601.4659389999999 -root_section_avg_sys,0.1900000000023283 -root_section_max_sys,0.1900000000023283 -pytimings::data::_sections,root_section||root_section.nested_1||root_section.nested_1.leaf_section diff --git a/tests/test_output/test_output_simple_True_.txt b/tests/test_output/test_output_simple_True_.txt deleted file mode 100644 index ffc005f..0000000 --- a/tests/test_output/test_output_simple_True_.txt +++ /dev/null @@ -1,22 +0,0 @@ -section,value -threads,1 -ranks,1 -root_section.nested_1.leaf_section_avg_usr,0.39000000001396984 -root_section.nested_1.leaf_section_max_usr,0.39000000001396984 -root_section.nested_1.leaf_section_avg_wall,300.56171 -root_section.nested_1.leaf_section_max_wall,300.56171 -root_section.nested_1.leaf_section_avg_sys,0.08000000000174623 -root_section.nested_1.leaf_section_max_sys,0.08000000000174623 -root_section.nested_1_avg_usr,0.6400000000139698 -root_section.nested_1_max_usr,0.6400000000139698 -root_section.nested_1_avg_wall,501.107784 -root_section.nested_1_max_wall,501.107784 -root_section.nested_1_avg_sys,0.14000000001396984 -root_section.nested_1_max_sys,0.14000000001396984 -root_section_avg_usr,0.7199999999720603 -root_section_max_usr,0.7199999999720603 -root_section_avg_wall,601.58015 -root_section_max_wall,601.58015 -root_section_avg_sys,0.15000000000873115 -root_section_max_sys,0.15000000000873115 -pytimings::data::_sections,root_section||root_section.nested_1||root_section.nested_1.leaf_section