wisio 0.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. wisio-0.0.1/.gitmodules +10 -0
  2. wisio-0.0.1/LICENSE +0 -0
  3. wisio-0.0.1/MANIFEST.in +7 -0
  4. wisio-0.0.1/PKG-INFO +50 -0
  5. wisio-0.0.1/README.md +31 -0
  6. wisio-0.0.1/pyproject.toml +9 -0
  7. wisio-0.0.1/setup.cfg +4 -0
  8. wisio-0.0.1/setup.py +83 -0
  9. wisio-0.0.1/tools/.dockerignore +3 -0
  10. wisio-0.0.1/tools/.gitignore +3 -0
  11. wisio-0.0.1/tools/CMakeLists.txt +83 -0
  12. wisio-0.0.1/tools/cmake/modules/FindPythonExtensions.cmake +503 -0
  13. wisio-0.0.1/tools/cmake/modules/targetLinkLibrariesWithDynamicLookup.cmake +478 -0
  14. wisio-0.0.1/tools/cmake/wisio-config-version.cmake.in +13 -0
  15. wisio-0.0.1/tools/cmake/wisio-config.cmake.build.in +20 -0
  16. wisio-0.0.1/tools/cmake/wisio-config.cmake.install.in +20 -0
  17. wisio-0.0.1/tools/recorder2parquet.cpp +1260 -0
  18. wisio-0.0.1/tools/spack.yaml +12 -0
  19. wisio-0.0.1/wisio/__init__.py +0 -0
  20. wisio-0.0.1/wisio/__main__.py +191 -0
  21. wisio-0.0.1/wisio/_darshan/__init__.py +0 -0
  22. wisio-0.0.1/wisio/_darshan/analysis.py +166 -0
  23. wisio-0.0.1/wisio/analysis.py +162 -0
  24. wisio-0.0.1/wisio/analysis_utils.py +38 -0
  25. wisio-0.0.1/wisio/analyzer.py +644 -0
  26. wisio-0.0.1/wisio/analyzer_result.py +1568 -0
  27. wisio-0.0.1/wisio/cluster_management.py +99 -0
  28. wisio-0.0.1/wisio/constants.py +103 -0
  29. wisio-0.0.1/wisio/darshan.py +115 -0
  30. wisio-0.0.1/wisio/dlp.py +310 -0
  31. wisio-0.0.1/wisio/recorder.py +150 -0
  32. wisio-0.0.1/wisio/rule_engine.py +311 -0
  33. wisio-0.0.1/wisio/rules.py +1164 -0
  34. wisio-0.0.1/wisio/scoring.py +72 -0
  35. wisio-0.0.1/wisio/tests/__init__.py +0 -0
  36. wisio-0.0.1/wisio/types.py +144 -0
  37. wisio-0.0.1/wisio/utils/__init__.py +0 -0
  38. wisio-0.0.1/wisio/utils/collection_utils.py +44 -0
  39. wisio-0.0.1/wisio/utils/common_utils.py +41 -0
  40. wisio-0.0.1/wisio/utils/dask_agg.py +42 -0
  41. wisio-0.0.1/wisio/utils/dask_utils.py +29 -0
  42. wisio-0.0.1/wisio/utils/distributed_plugins.py +68 -0
  43. wisio-0.0.1/wisio/utils/file_utils.py +17 -0
  44. wisio-0.0.1/wisio/utils/json_encoders.py +15 -0
  45. wisio-0.0.1/wisio/utils/logger.py +39 -0
  46. wisio-0.0.1/wisio/utils/yaml_utils.py +14 -0
  47. wisio-0.0.1/wisio.egg-info/PKG-INFO +50 -0
  48. wisio-0.0.1/wisio.egg-info/SOURCES.txt +50 -0
  49. wisio-0.0.1/wisio.egg-info/dependency_links.txt +1 -0
  50. wisio-0.0.1/wisio.egg-info/entry_points.txt +2 -0
  51. wisio-0.0.1/wisio.egg-info/requires.txt +16 -0
  52. wisio-0.0.1/wisio.egg-info/top_level.txt +1 -0
@@ -0,0 +1,10 @@
1
+ [submodule "tools/lib/backward-cpp"]
2
+ path = tools/lib/backward-cpp
3
+ url = git@github.com:bombela/backward-cpp.git
4
+ [submodule "tools/lib/cpp-logger"]
5
+ path = tools/lib/cpp-logger
6
+ url = git@github.com:hariharan-devarajan/cpp-logger.git
7
+ [submodule "tools/lib/recorder"]
8
+ path = tools/lib/recorder
9
+ url = git@github.com:hariharan-devarajan/Recorder.git
10
+ branch = pilgrim
wisio-0.0.1/LICENSE ADDED
File without changes
@@ -0,0 +1,7 @@
1
+ graft tools
2
+ graft wisio
3
+ include .gitmodules
4
+ prune tools/build
5
+ prune tools/lib
6
+ global-exclude */__pycache__/*
7
+ global-exclude *.pyc
wisio-0.0.1/PKG-INFO ADDED
@@ -0,0 +1,50 @@
1
+ Metadata-Version: 2.1
2
+ Name: wisio
3
+ Version: 0.0.1
4
+ Home-page: https://github.com/izzet/wisio
5
+ Author: Izzet Yildirim
6
+ Author-email: izzetcyildirim@gmail.com
7
+ Classifier: Development Status :: 3 - Alpha
8
+ Classifier: Intended Audience :: Science/Research
9
+ Classifier: Topic :: Software Development :: Build Tools
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Programming Language :: Python :: 3 :: Only
12
+ Classifier: Programming Language :: Python :: 3.8
13
+ Classifier: Programming Language :: Python :: 3.9
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Requires-Python: >=3.8, <4
16
+ Description-Content-Type: text/markdown
17
+ Provides-Extra: darshan
18
+ License-File: LICENSE
19
+
20
+ <p align="center">
21
+ <img src="./assets/logo.png">
22
+ </p>
23
+
24
+ # WisIO: Automated I/O Analysis for HPC Workflows
25
+
26
+ ## Overview
27
+
28
+ **"Extract wisdom from large-scale rich I/O traces of HPC workflows."**
29
+
30
+ ## Installation
31
+
32
+ To install WisIO through `pip`, you will need to use the following command.
33
+
34
+ ```bash
35
+ spack -e tools install
36
+ pip install wisio[darshan]
37
+ ```
38
+
39
+ To install WisIO from source, you will need to first install the dependencies:
40
+
41
+ ```bash
42
+ spack -e tools install
43
+ pip install .[darshan]
44
+ ```
45
+
46
+ ## Usage
47
+
48
+ ```bash
49
+ wisio analyze -c /path/to/config
50
+ ```
wisio-0.0.1/README.md ADDED
@@ -0,0 +1,31 @@
1
+ <p align="center">
2
+ <img src="./assets/logo.png">
3
+ </p>
4
+
5
+ # WisIO: Automated I/O Analysis for HPC Workflows
6
+
7
+ ## Overview
8
+
9
+ **"Extract wisdom from large-scale rich I/O traces of HPC workflows."**
10
+
11
+ ## Installation
12
+
13
+ To install WisIO through `pip`, you will need to use the following command.
14
+
15
+ ```bash
16
+ spack -e tools install
17
+ pip install wisio[darshan]
18
+ ```
19
+
20
+ To install WisIO from source, you will need to first install the dependencies:
21
+
22
+ ```bash
23
+ spack -e tools install
24
+ pip install .[darshan]
25
+ ```
26
+
27
+ ## Usage
28
+
29
+ ```bash
30
+ wisio analyze -c /path/to/config
31
+ ```
@@ -0,0 +1,9 @@
1
+ [build-system]
2
+ requires = ["cmake>=3.24", "scikit-build>=0.17", "setuptools>=42", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [tool.ruff.format]
6
+ quote-style = "preserve"
7
+
8
+ [tool.ruff.lint.pycodestyle]
9
+ max-line-length = 100
wisio-0.0.1/setup.cfg ADDED
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
wisio-0.0.1/setup.py ADDED
@@ -0,0 +1,83 @@
1
+ # import subprocess
2
+ # from os import path
3
+ from pathlib import Path
4
+ from setuptools import find_packages, setup
5
+ # from skbuild import setup
6
+ # from skbuild.command.build import build
7
+ # from skbuild.command.install import install
8
+ # from skbuild.command.egg_info import egg_info
9
+
10
+
11
+ # def update_submodules():
12
+ # print("Updating submodules...")
13
+ # if path.exists('.gitmodules'):
14
+ # subprocess.check_call(['git', 'submodule', 'init'])
15
+ # subprocess.check_call(['git', 'submodule', 'update'])
16
+
17
+
18
+ # class build_with_submodules(build):
19
+ # def run(self):
20
+ # update_submodules()
21
+ # build.run(self)
22
+
23
+
24
+ # class egg_info_with_submodules(egg_info):
25
+ # def run(self):
26
+ # update_submodules()
27
+ # egg_info.run(self)
28
+
29
+
30
+ # class install_with_submodules(install):
31
+ # def run(self):
32
+ # update_submodules()
33
+ # install.run(self)
34
+
35
+
36
+ setup(
37
+ name="wisio",
38
+ version="0.0.1",
39
+ url="https://github.com/izzet/wisio",
40
+ author="Izzet Yildirim",
41
+ author_email="izzetcyildirim@gmail.com",
42
+ classifiers=[
43
+ "Development Status :: 3 - Alpha",
44
+ "Intended Audience :: Science/Research",
45
+ "Topic :: Software Development :: Build Tools",
46
+ "License :: OSI Approved :: MIT License",
47
+ "Programming Language :: Python :: 3 :: Only",
48
+ "Programming Language :: Python :: 3.8",
49
+ "Programming Language :: Python :: 3.9",
50
+ "Programming Language :: Python :: 3.10",
51
+ ],
52
+ long_description=(Path(__file__).parent / "README.md").read_text(),
53
+ long_description_content_type="text/markdown",
54
+ python_requires=">=3.8, <4",
55
+ # cmake_source_dir="tools",
56
+ # cmdclass={
57
+ # "build": build_with_submodules,
58
+ # "egg_info": egg_info_with_submodules,
59
+ # "install": install_with_submodules,
60
+ # },
61
+ entry_points={
62
+ "console_scripts": [
63
+ "wisio=wisio.__main__:main",
64
+ ]
65
+ },
66
+ packages=find_packages(),
67
+ install_requires=[
68
+ "dask>=2023.9.0",
69
+ "dask_jobqueue==0.8.2",
70
+ "distributed>=2023.9.0",
71
+ "inflect==7.0",
72
+ "jinja2>=3.0",
73
+ "numpy==1.24.3",
74
+ "matplotlib==3.2.1",
75
+ "pandas>=2.1",
76
+ "pyyaml>=5.4",
77
+ "rich==13.6.0",
78
+ "scikit-learn>=1.4",
79
+ "scipy>=1.10",
80
+ "venn==0.1.3",
81
+ ],
82
+ extras_require={"darshan": ["darshan>=3.4"]},
83
+ )
@@ -0,0 +1,3 @@
1
+ .spack-env
2
+ build
3
+ spack.lock
@@ -0,0 +1,3 @@
1
+ .spack-env
2
+ build
3
+ spack.lock
@@ -0,0 +1,83 @@
1
+ cmake_minimum_required(VERSION 3.0)
2
+ project(wisio)
3
+
4
+ #message(${CMAKE_PREFIX_PATH})
5
+ set(CMAKE_CXX_STANDARD 17)
6
+ set(WISIO_CMAKE_DIR ${CMAKE_SOURCE_DIR}/cmake)
7
+ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${WISIO_CMAKE_DIR} ${WISIO_CMAKE_DIR}/modules)
8
+ set(DEPENDENCY_LIB -lstdc++fs)
9
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -rdynamic")
10
+
11
+ #------------------------------------------------------------------------------
12
+ # Disallow in-source build
13
+ #------------------------------------------------------------------------------
14
+ if ("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
15
+ message(FATAL_ERROR
16
+ "${PROJECT_NAME} requires an out of source Build. "
17
+ "Please create a separate binary directory and run CMake there.")
18
+ endif ()
19
+
20
+ #------------------------------------------------------------------------------
21
+ # Set a default build type if none was specified
22
+ #------------------------------------------------------------------------------
23
+ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
24
+ if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
25
+ message(STATUS "Setting build type to 'RelWithDebInfo' as none was specified.")
26
+ set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build." FORCE)
27
+ # Set the possible values of build type for cmake-gui
28
+ set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
29
+ endif ()
30
+
31
+ if (NOT "${CMAKE_CXX_STANDARD}")
32
+ set(CMAKE_CXX_STANDARD 17)
33
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
34
+ set(CMAKE_CXX_EXTENSIONS OFF)
35
+ endif ()
36
+
37
+ add_subdirectory(lib/backward-cpp)
38
+ add_subdirectory(lib/cpp-logger)
39
+ add_subdirectory(lib/recorder/tools)
40
+
41
+ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/lib/recorder/include)
42
+ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/lib/recorder/tools)
43
+ include_directories(${RECORDER_INCLUDE_DIR})
44
+
45
+ find_package(MPI COMPONENTS CXX REQUIRED)
46
+ if (MPI_FOUND)
47
+ message(STATUS "[MPI] found mpi.h at ${MPI_CXX_INCLUDE_DIRS}")
48
+ include_directories(${MPI_CXX_INCLUDE_DIRS})
49
+ set(DEPENDENCY_LIB ${DEPENDENCY_LIB} ${MPI_CXX_LIBRARIES})
50
+ endif ()
51
+
52
+ find_package(Arrow REQUIRED)
53
+ if(${Arrow_FOUND})
54
+ message("-- " "Found Arrow: TRUE")
55
+ include_directories(${ARROW_INCLUDE_DIR})
56
+ else()
57
+ message("-- " "Found Arrow: FALSE")
58
+ endif()
59
+ find_package(Parquet REQUIRED)
60
+ if(${Parquet_FOUND})
61
+ message("-- " "Found Parquet: TRUE")
62
+ include_directories(${PARQUET_INCLUDE_DIR})
63
+ else()
64
+ message("-- " "Found Parquet: FALSE")
65
+ endif()
66
+
67
+ find_package(nlohmann_json 3.11.2 REQUIRED)
68
+ find_package(PythonExtensions REQUIRED)
69
+
70
+ add_executable(wisio_recorder2parquet recorder2parquet.cpp)
71
+ target_link_libraries(wisio_recorder2parquet
72
+ ${MPI_CXX_LIBRARIES}
73
+ reader
74
+ arrow_shared
75
+ parquet_shared
76
+ -lstdc++fs
77
+ cpp-logger
78
+ nlohmann_json::nlohmann_json
79
+ Backward::Interface
80
+ )
81
+ add_dependencies(wisio_recorder2parquet reader)
82
+ install(TARGETS wisio_recorder2parquet RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
83
+ python_standalone_executable(wisio_recorder2parquet)