From 17d2884ff807b55bae14eba657ea304cbcb9957f Mon Sep 17 00:00:00 2001 From: Naveen Tatikonda Date: Thu, 15 Aug 2024 15:45:30 -0500 Subject: [PATCH] Delete Benchmarks folder to fix CVE (#1972) Signed-off-by: Naveen Tatikonda --- benchmarks/perf-tool/.pylintrc | 443 -------------- benchmarks/perf-tool/.style.yapf | 10 - benchmarks/perf-tool/README.md | 279 --------- benchmarks/perf-tool/dataset/data.hdf5 | Bin 527648 -> 0 bytes benchmarks/perf-tool/knn-perf-tool.py | 10 - benchmarks/perf-tool/okpt/__init__.py | 6 - benchmarks/perf-tool/okpt/diff/diff.py | 142 ----- benchmarks/perf-tool/okpt/io/args.py | 178 ------ .../perf-tool/okpt/io/config/parsers/base.py | 67 --- .../perf-tool/okpt/io/config/parsers/test.py | 74 --- .../perf-tool/okpt/io/config/parsers/util.py | 116 ---- .../perf-tool/okpt/io/config/schemas/test.yml | 29 - benchmarks/perf-tool/okpt/io/dataset.py | 218 ------- benchmarks/perf-tool/okpt/io/utils/reader.py | 84 --- benchmarks/perf-tool/okpt/io/utils/writer.py | 40 -- benchmarks/perf-tool/okpt/main.py | 55 -- benchmarks/perf-tool/okpt/test/__init__.py | 5 - benchmarks/perf-tool/okpt/test/profile.py | 86 --- benchmarks/perf-tool/okpt/test/runner.py | 107 ---- benchmarks/perf-tool/okpt/test/steps/base.py | 60 -- .../perf-tool/okpt/test/steps/factory.py | 35 -- benchmarks/perf-tool/okpt/test/steps/steps.py | 557 ------------------ benchmarks/perf-tool/okpt/test/test.py | 180 ------ benchmarks/perf-tool/requirements.in | 7 - benchmarks/perf-tool/requirements.txt | 39 -- .../faiss-sift-ivf/index-spec.json | 17 - .../faiss-sift-ivf/method-spec.json | 8 - .../sample-configs/faiss-sift-ivf/test.yml | 60 -- .../faiss-sift-ivf/train-index-spec.json | 16 - .../nmslib-sift-hnsw/index-spec.json | 28 - .../sample-configs/nmslib-sift-hnsw/test.yml | 36 -- 31 files changed, 2992 deletions(-) delete mode 100644 benchmarks/perf-tool/.pylintrc delete mode 100644 benchmarks/perf-tool/.style.yapf delete mode 100644 benchmarks/perf-tool/README.md delete mode 100644 benchmarks/perf-tool/dataset/data.hdf5 delete mode 100644 benchmarks/perf-tool/knn-perf-tool.py delete mode 100644 benchmarks/perf-tool/okpt/__init__.py delete mode 100644 benchmarks/perf-tool/okpt/diff/diff.py delete mode 100644 benchmarks/perf-tool/okpt/io/args.py delete mode 100644 benchmarks/perf-tool/okpt/io/config/parsers/base.py delete mode 100644 benchmarks/perf-tool/okpt/io/config/parsers/test.py delete mode 100644 benchmarks/perf-tool/okpt/io/config/parsers/util.py delete mode 100644 benchmarks/perf-tool/okpt/io/config/schemas/test.yml delete mode 100644 benchmarks/perf-tool/okpt/io/dataset.py delete mode 100644 benchmarks/perf-tool/okpt/io/utils/reader.py delete mode 100644 benchmarks/perf-tool/okpt/io/utils/writer.py delete mode 100644 benchmarks/perf-tool/okpt/main.py delete mode 100644 benchmarks/perf-tool/okpt/test/__init__.py delete mode 100644 benchmarks/perf-tool/okpt/test/profile.py delete mode 100644 benchmarks/perf-tool/okpt/test/runner.py delete mode 100644 benchmarks/perf-tool/okpt/test/steps/base.py delete mode 100644 benchmarks/perf-tool/okpt/test/steps/factory.py delete mode 100644 benchmarks/perf-tool/okpt/test/steps/steps.py delete mode 100644 benchmarks/perf-tool/okpt/test/test.py delete mode 100644 benchmarks/perf-tool/requirements.in delete mode 100644 benchmarks/perf-tool/requirements.txt delete mode 100644 benchmarks/perf-tool/sample-configs/faiss-sift-ivf/index-spec.json delete mode 100644 benchmarks/perf-tool/sample-configs/faiss-sift-ivf/method-spec.json delete mode 100644 benchmarks/perf-tool/sample-configs/faiss-sift-ivf/test.yml delete mode 100644 benchmarks/perf-tool/sample-configs/faiss-sift-ivf/train-index-spec.json delete mode 100644 benchmarks/perf-tool/sample-configs/nmslib-sift-hnsw/index-spec.json delete mode 100644 benchmarks/perf-tool/sample-configs/nmslib-sift-hnsw/test.yml diff --git a/benchmarks/perf-tool/.pylintrc b/benchmarks/perf-tool/.pylintrc deleted file mode 100644 index 15bf4ccc3..000000000 --- a/benchmarks/perf-tool/.pylintrc +++ /dev/null @@ -1,443 +0,0 @@ -# This Pylint rcfile contains a best-effort configuration to uphold the -# best-practices and style described in the Google Python style guide: -# https://google.github.io/styleguide/pyguide.html -# -# Its canonical open-source location is: -# https://google.github.io/styleguide/pylintrc - -[MASTER] - -fail-under=9.0 - -# Files or directories to be skipped. They should be base names, not paths. -ignore=third_party - -# Files or directories matching the regex patterns are skipped. The regex -# matches against base names, not paths. -ignore-patterns= - -# Pickle collected data for later comparisons. -persistent=no - -# List of plugins (as comma separated values of python modules names) to load, -# usually to register additional checkers. -load-plugins= - -# Use multiple processes to speed up Pylint. -jobs=4 - -# Allow loading of arbitrary C extensions. Extensions are imported into the -# active Python interpreter and may run arbitrary code. -unsafe-load-any-extension=no - - -[MESSAGES CONTROL] - -# Only show warnings with the listed confidence levels. Leave empty to show -# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED -confidence= - -# Enable the message, report, category or checker with the given id(s). You can -# either give multiple identifier separated by comma (,) or put this option -# multiple time (only on the command line, not in the configuration file where -# it should appear only once). See also the "--disable" option for examples. -#enable= - -# Disable the message, report, category or checker with the given id(s). You -# can either give multiple identifiers separated by comma (,) or put this -# option multiple times (only on the command line, not in the configuration -# file where it should appear only once).You can also use "--disable=all" to -# disable everything first and then reenable specific checks. For example, if -# you want to run only the similarities checker, you can use "--disable=all -# --enable=similarities". If you want to run only the classes checker, but have -# no Warning level messages displayed, use"--disable=all --enable=classes -# --disable=W" -disable=abstract-method, - apply-builtin, - arguments-differ, - attribute-defined-outside-init, - backtick, - bad-option-value, - basestring-builtin, - buffer-builtin, - c-extension-no-member, - consider-using-enumerate, - cmp-builtin, - cmp-method, - coerce-builtin, - coerce-method, - delslice-method, - div-method, - duplicate-code, - eq-without-hash, - execfile-builtin, - file-builtin, - filter-builtin-not-iterating, - fixme, - getslice-method, - global-statement, - hex-method, - idiv-method, - implicit-str-concat-in-sequence, - import-error, - import-self, - import-star-module-level, - inconsistent-return-statements, - input-builtin, - intern-builtin, - invalid-str-codec, - locally-disabled, - long-builtin, - long-suffix, - map-builtin-not-iterating, - misplaced-comparison-constant, - missing-function-docstring, - metaclass-assignment, - next-method-called, - next-method-defined, - no-absolute-import, - no-else-break, - no-else-continue, - no-else-raise, - no-else-return, - no-init, # added - no-member, - no-name-in-module, - no-self-use, - nonzero-method, - oct-method, - old-division, - old-ne-operator, - old-octal-literal, - old-raise-syntax, - parameter-unpacking, - print-statement, - raising-string, - range-builtin-not-iterating, - raw_input-builtin, - rdiv-method, - reduce-builtin, - relative-import, - reload-builtin, - round-builtin, - setslice-method, - signature-differs, - standarderror-builtin, - suppressed-message, - sys-max-int, - too-few-public-methods, - too-many-ancestors, - too-many-arguments, - too-many-boolean-expressions, - too-many-branches, - too-many-instance-attributes, - too-many-locals, - too-many-nested-blocks, - too-many-public-methods, - too-many-return-statements, - too-many-statements, - trailing-newlines, - unichr-builtin, - unicode-builtin, - unnecessary-pass, - unpacking-in-except, - useless-else-on-loop, - useless-object-inheritance, - useless-suppression, - using-cmp-argument, - wrong-import-order, - xrange-builtin, - zip-builtin-not-iterating, - - -[REPORTS] - -# Set the output format. Available formats are text, parseable, colorized, msvs -# (visual studio) and html. You can also give a reporter class, eg -# mypackage.mymodule.MyReporterClass. -output-format=text - -# Put messages in a separate file for each module / package specified on the -# command line instead of printing them on stdout. Reports (if any) will be -# written in a file name "pylint_global.[txt|html]". This option is deprecated -# and it will be removed in Pylint 2.0. -files-output=no - -# Tells whether to display a full report or only the messages -reports=no - -# Python expression which should return a note less than 10 (10 is the highest -# note). You have access to the variables errors warning, statement which -# respectively contain the number of errors / warnings messages and the total -# number of statements analyzed. This is used by the global evaluation report -# (RP0004). -evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) - -# Template used to display messages. This is a python new-style format string -# used to format the message information. See doc for all details -#msg-template= - - -[BASIC] - -# Good variable names which should always be accepted, separated by a comma -good-names=main,_ - -# Bad variable names which should always be refused, separated by a comma -bad-names= - -# Colon-delimited sets of names that determine each other's naming style when -# the name regexes allow several styles. -name-group= - -# Include a hint for the correct naming format with invalid-name -include-naming-hint=no - -# List of decorators that produce properties, such as abc.abstractproperty. Add -# to this list to register other decorators that produce valid properties. -property-classes=abc.abstractproperty,cached_property.cached_property,cached_property.threaded_cached_property,cached_property.cached_property_with_ttl,cached_property.threaded_cached_property_with_ttl - -# Regular expression matching correct function names -function-rgx=^(?:(?PsetUp|tearDown|setUpModule|tearDownModule)|(?P_?[A-Z][a-zA-Z0-9]*)|(?P_?[a-z][a-z0-9_]*))$ - -# Regular expression matching correct variable names -variable-rgx=^[a-z][a-z0-9_]*$ - -# Regular expression matching correct constant names -const-rgx=^(_?[A-Z][A-Z0-9_]*|__[a-z0-9_]+__|_?[a-z][a-z0-9_]*)$ - -# Regular expression matching correct attribute names -attr-rgx=^_{0,2}[a-z][a-z0-9_]*$ - -# Regular expression matching correct argument names -argument-rgx=^[a-z][a-z0-9_]*$ - -# Regular expression matching correct class attribute names -class-attribute-rgx=^(_?[A-Z][A-Z0-9_]*|__[a-z0-9_]+__|_?[a-z][a-z0-9_]*)$ - -# Regular expression matching correct inline iteration names -inlinevar-rgx=^[a-z][a-z0-9_]*$ - -# Regular expression matching correct class names -class-rgx=^_?[A-Z][a-zA-Z0-9]*$ - -# Regular expression matching correct module names -module-rgx=^(_?[a-z][a-z0-9_]*|__init__)$ - -# Regular expression matching correct method names -method-rgx=(?x)^(?:(?P_[a-z0-9_]+__|runTest|setUp|tearDown|setUpTestCase|tearDownTestCase|setupSelf|tearDownClass|setUpClass|(test|assert)_*[A-Z0-9][a-zA-Z0-9_]*|next)|(?P_{0,2}[A-Z][a-zA-Z0-9_]*)|(?P_{0,2}[a-z][a-z0-9_]*))$ - -# Regular expression which should only match function or class names that do -# not require a docstring. -no-docstring-rgx=(__.*__|main|test.*|.*test|.*Test)$ - -# Minimum line length for functions/classes that require docstrings, shorter -# ones are exempt. -docstring-min-length=10 - - -[TYPECHECK] - -# List of decorators that produce context managers, such as -# contextlib.contextmanager. Add to this list to register other decorators that -# produce valid context managers. -contextmanager-decorators=contextlib.contextmanager,contextlib2.contextmanager - -# Tells whether missing members accessed in mixin class should be ignored. A -# mixin class is detected if its name ends with "mixin" (case insensitive). -ignore-mixin-members=yes - -# List of module names for which member attributes should not be checked -# (useful for modules/projects where namespaces are manipulated during runtime -# and thus existing member attributes cannot be deduced by static analysis. It -# supports qualified module names, as well as Unix pattern matching. -ignored-modules= - -# List of class names for which member attributes should not be checked (useful -# for classes with dynamically set attributes). This supports the use of -# qualified names. -ignored-classes=optparse.Values,thread._local,_thread._local - -# List of members which are set dynamically and missed by pylint inference -# system, and so shouldn't trigger E1101 when accessed. Python regular -# expressions are accepted. -generated-members= - - -[FORMAT] - -# Maximum number of characters on a single line. -max-line-length=80 - -# TODO(https://github.com/PyCQA/pylint/issues/3352): Direct pylint to exempt -# lines made too long by directives to pytype. - -# Regexp for a line that is allowed to be longer than the limit. -ignore-long-lines=(?x)( - ^\s*(\#\ )??$| - ^\s*(from\s+\S+\s+)?import\s+.+$) - -# Allow the body of an if to be on the same line as the test if there is no -# else. -single-line-if-stmt=yes - -# List of optional constructs for which whitespace checking is disabled. `dict- -# separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}. -# `trailing-comma` allows a space between comma and closing bracket: (a, ). -# `empty-line` allows space-only lines. -no-space-check= - -# Maximum number of lines in a module -max-module-lines=99999 - -# String used as indentation unit. The internal Google style guide mandates 2 -# spaces. Google's externaly-published style guide says 4, consistent with -# PEP 8. Here, we use 2 spaces, for conformity with many open-sourced Google -# projects (like TensorFlow). -indent-string=' ' - -# Number of spaces of indent required inside a hanging or continued line. -indent-after-paren=4 - -# Expected format of line ending, e.g. empty (any line ending), LF or CRLF. -expected-line-ending-format= - - -[MISCELLANEOUS] - -# List of note tags to take in consideration, separated by a comma. -notes=TODO - - -[STRING] - -# This flag controls whether inconsistent-quotes generates a warning when the -# character used as a quote delimiter is used inconsistently within a module. -check-quote-consistency=yes - - -[VARIABLES] - -# Tells whether we should check for unused import in __init__ files. -init-import=no - -# A regular expression matching the name of dummy variables (i.e. expectedly -# not used). -dummy-variables-rgx=^\*{0,2}(_$|unused_|dummy_) - -# List of additional names supposed to be defined in builtins. Remember that -# you should avoid to define new builtins when possible. -additional-builtins= - -# List of strings which can identify a callback function by name. A callback -# name must start or end with one of those strings. -callbacks=cb_,_cb - -# List of qualified module names which can have objects that can redefine -# builtins. -redefining-builtins-modules=six,six.moves,past.builtins,future.builtins,functools - - -[LOGGING] - -# Logging modules to check that the string format arguments are in logging -# function parameter format -logging-modules=logging,absl.logging,tensorflow.io.logging - - -[SIMILARITIES] - -# Minimum lines number of a similarity. -min-similarity-lines=4 - -# Ignore comments when computing similarities. -ignore-comments=yes - -# Ignore docstrings when computing similarities. -ignore-docstrings=yes - -# Ignore imports when computing similarities. -ignore-imports=no - - -[SPELLING] - -# Spelling dictionary name. Available dictionaries: none. To make it working -# install python-enchant package. -spelling-dict= - -# List of comma separated words that should not be checked. -spelling-ignore-words= - -# A path to a file that contains private dictionary; one word per line. -spelling-private-dict-file= - -# Tells whether to store unknown words to indicated private dictionary in -# --spelling-private-dict-file option instead of raising a message. -spelling-store-unknown-words=no - - -[IMPORTS] - -# Deprecated modules which should not be used, separated by a comma -deprecated-modules=regsub, - TERMIOS, - Bastion, - rexec, - sets - -# Create a graph of every (i.e. internal and external) dependencies in the -# given file (report RP0402 must not be disabled) -import-graph= - -# Create a graph of external dependencies in the given file (report RP0402 must -# not be disabled) -ext-import-graph= - -# Create a graph of internal dependencies in the given file (report RP0402 must -# not be disabled) -int-import-graph= - -# Force import order to recognize a module as part of the standard -# compatibility libraries. -known-standard-library= - -# Force import order to recognize a module as part of a third party library. -known-third-party=enchant, absl - -# Analyse import fallback blocks. This can be used to support both Python 2 and -# 3 compatible code, which means that the block might have code that exists -# only in one or another interpreter, leading to false positives when analysed. -analyse-fallback-blocks=no - - -[CLASSES] - -# List of method names used to declare (i.e. assign) instance attributes. -defining-attr-methods=__init__, - __new__, - setUp - -# List of member names, which should be excluded from the protected access -# warning. -exclude-protected=_asdict, - _fields, - _replace, - _source, - _make - -# List of valid names for the first argument in a class method. -valid-classmethod-first-arg=cls, - class_ - -# List of valid names for the first argument in a metaclass class method. -valid-metaclass-classmethod-first-arg=mcs - - -[EXCEPTIONS] - -# Exceptions that will emit a warning when being caught. Defaults to -# "Exception" -overgeneral-exceptions=StandardError, - Exception, - BaseException diff --git a/benchmarks/perf-tool/.style.yapf b/benchmarks/perf-tool/.style.yapf deleted file mode 100644 index 39b663a7a..000000000 --- a/benchmarks/perf-tool/.style.yapf +++ /dev/null @@ -1,10 +0,0 @@ -[style] -COLUMN_LIMIT: 80 -DEDENT_CLOSING_BRACKETS: True -INDENT_DICTIONARY_VALUE: True -SPLIT_ALL_COMMA_SEPARATED_VALUES: True -SPLIT_ARGUMENTS_WHEN_COMMA_TERMINATED: True -SPLIT_BEFORE_CLOSING_BRACKET: True -SPLIT_BEFORE_EXPRESSION_AFTER_OPENING_PAREN: True -SPLIT_BEFORE_FIRST_ARGUMENT: True -SPLIT_BEFORE_NAMED_ASSIGNS: True diff --git a/benchmarks/perf-tool/README.md b/benchmarks/perf-tool/README.md deleted file mode 100644 index eb4ac0dc1..000000000 --- a/benchmarks/perf-tool/README.md +++ /dev/null @@ -1,279 +0,0 @@ -# OpenSearch k-NN Benchmarking -- [Welcome!](#welcome) -- [Install Prerequisites](#install-prerequisites) -- [Usage](#usage) -- [Contributing](#contributing) - -## Welcome! - -This directory contains the code related to benchmarking the k-NN plugin. -Benchmarks can be run against any OpenSearch cluster with the k-NN plugin -installed. Benchmarks are highly configurable using the test configuration -file. - -## Install Prerequisites - -### Python - -Python 3.7 or above is required. - -### Pip - -Use pip to install the necessary requirements: - -``` -pip install -r requirements.txt -``` - -## Usage - -### Quick Start - -In order to run a benchmark, you must first create a test configuration yml -file. Checkout [this example](https://github.com/opensearch-project/k-NN/blob/main/benchmarks/perf-tool/sample-configs) file -for benchmarking *faiss*'s IVF method. This file contains the definition for -the benchmark that you want to run. At the top are -[test parameters](#test-parameters). These define high level settings of the -test, such as the endpoint of the OpenSearch cluster. - -Next, you define the actions that the test will perform. These actions are -referred to as steps. First, you can define "setup" steps. These are steps that -are run once at the beginning of the execution to configure the cluster how you -want it. These steps do not contribute to the final metrics. - -After that, you define the "steps". These are the steps that the test will be -collecting metrics on. Each step emits certain metrics. These are run -multiple times, depending on the test parameter "num_runs". At the end of the -execution of all of the runs, the metrics from each run are collected and -averaged. - -Lastly, you define the "cleanup" steps. The "cleanup" steps are executed after -each test run. For instance, if you are measuring index performance, you may -want to delete the index after each run. - -To run the test, execute the following command: -``` -python knn-perf-tool.py [--log LOGLEVEL] test config-path.yml output.json - ---log log level of tool, options are: info, debug, warning, error, critical -``` - -The output will be a json document containing the results. - -Additionally, you can get the difference between two test runs using the diff -command: -``` -python knn-perf-tool.py [--log LOGLEVEL] diff result1.json result2.json - ---log log level of tool, options are: info, debug, warning, error, critical -``` - -The output will be the delta between the two metrics. - -### Test Parameters - -| Parameter Name | Description | Default | -| ----------- | ----------- | ----------- | -| endpoint | Endpoint OpenSearch cluster is running on | localhost | -| test_name | Name of test | No default | -| test_id | String ID of test | No default | -| num_runs | Number of runs to execute steps | 1 | -| show_runs | Whether to output each run in addition to the total summary | false | -| setup | List of steps to run once before metric collection starts | [] | -| steps | List of steps that make up one test run. Metrics will be collected on these steps. | No default | -| cleanup | List of steps to run after each test run | [] | - -### Steps - -Included are the list of steps that are currently supported. Each step contains -a set of parameters that are passed in the test configuration file and a set -of metrics that the test produces. - -#### create_index - -Creates an OpenSearch index. - -##### Parameters -| Parameter Name | Description | Default | -| ----------- | ----------- | ----------- | -| index_name | Name of index to create | No default | -| index_spec | Path to index specification | No default | - -##### Metrics - -| Metric Name | Description | Unit | -| ----------- | ----------- | ----------- | -| took | Time to execute step end to end. | ms | - -#### disable_refresh - -Disables refresh for all indices in the cluster. - -##### Parameters - -| Parameter Name | Description | Default | -| ----------- | ----------- | ----------- | - -##### Metrics - -| Metric Name | Description | Unit | -| ----------- | ----------- | ----------- | -| took | Time to execute step end to end. | ms | - -#### refresh_index - -Refreshes an OpenSearch index. - -##### Parameters - -| Parameter Name | Description | Default | -| ----------- | ----------- | ----------- | -| index_name | Name of index to refresh | No default | - -##### Metrics - -| Metric Name | Description | Unit | -| ----------- | ----------- | ----------- | -| took | Time to execute step end to end. | ms | -| store_kb | Size of index after refresh completes | KB | - -#### force_merge - -Force merges an index to a specified number of segments. - -##### Parameters - -| Parameter Name | Description | Default | -| ----------- | ----------- | ----------- | -| index_name | Name of index to force merge | No default | -| max_num_segments | Number of segments to force merge to | No default | - -##### Metrics - -| Metric Name | Description | Unit | -| ----------- | ----------- | ----------- | -| took | Time to execute step end to end. | ms | - -#### train_model - -Trains a model. - -##### Parameters - -| Parameter Name | Description | Default | -| ----------- | ----------- | ----------- | -| model_id | Model id to set | Test | -| train_index | Index to pull training data from | No default | -| train_field | Field to pull training data from | No default | -| dimension | Dimension of model | No default | -| description | Description of model | No default | -| max_training_vector_count | Number of training vectors to used | No default | -| method_spec | Path to method specification | No default | - -##### Metrics - -| Metric Name | Description | Unit | -| ----------- | ----------- | ----------- | -| took | Time to execute step end to end | ms | - -#### delete_model - -Deletes a model from the cluster. - -##### Parameters - -| Parameter Name | Description | Default | -| ----------- | ----------- | ----------- | -| model_id | Model id to delete | Test | - -##### Metrics - -| Metric Name | Description | Unit | -| ----------- | ----------- | ----------- | -| took | Time to execute step end to end | ms | - -#### delete_index - -Deletes an index from the cluster. - -##### Parameters - -| Parameter Name | Description | Default | -| ----------- | ----------- | ----------- | -| index_name | Name of index to delete | No default | - -##### Metrics - -| Metric Name | Description | Unit | -| ----------- | ----------- | ----------- | -| took | Time to execute step end to end | ms | - -#### ingest - -Ingests a dataset of vectors into the cluster. - -##### Parameters - -| Parameter Name | Description | Default | -| ----------- | ----------- | ----------- | -| index_name | Name of index to ingest into | No default | -| field_name | Name of field to ingest into | No default | -| bulk_size | Documents per bulk request | 300 | -| dataset_format | Format the data-set is in. Currently hdf5 and bigann is supported. The hdf5 file must be organized in the same way that the ann-benchmarks organizes theirs. | 'hdf5' | -| dataset_path | Path to data-set | No default | -| doc_count | Number of documents to create from data-set | Size of the data-set | - -##### Metrics - -| Metric Name | Description | Unit | -| ----------- | ----------- | ----------- | -| took | Total time to ingest the dataset into the index.| ms | - -#### query - -Runs a set of queries against an index. - -##### Parameters - -| Parameter Name | Description | Default | -| ----------- | ----------- | ----------- | -| k | Number of neighbors to return on search | 100 | -| r | r value in Recall@R | 1 | -| index_name | Name of index to search | No default | -| field_name | Name field to search | No default | -| calculate_recall | Whether to calculate recall values | False | -| dataset_format | Format the dataset is in. Currently hdf5 and bigann is supported. The hdf5 file must be organized in the same way that the ann-benchmarks organizes theirs. | 'hdf5' | -| dataset_path | Path to dataset | No default | -| neighbors_format | Format the neighbors dataset is in. Currently hdf5 and bigann is supported. The hdf5 file must be organized in the same way that the ann-benchmarks organizes theirs. | 'hdf5' | -| neighbors_path | Path to neighbors dataset | No default | -| query_count | Number of queries to create from data-set | Size of the data-set | - -##### Metrics - -| Metric Name | Description | Unit | -| ----------- | ----------- | ----------- | -| took | Took times returned per query aggregated as total, p50, p90 and p99 (when applicable) | ms | -| memory_kb | Native memory k-NN is using at the end of the query workload | KB | -| recall@R | ratio of top R results from the ground truth neighbors that are in the K results returned by the plugin | float 0.0-1.0 | -| recall@K | ratio of results returned that were ground truth nearest neighbors | float 0.0-1.0 | - -## Contributing - -### Linting - -Use pylint to lint the code: -``` -pylint knn-perf-tool.py okpt/**/*.py okpt/**/**/*.py -``` - -### Formatting - -We use yapf and the google style to format our code. After installing yapf, you can format your code by running: - -``` -yapf --style google knn-perf-tool.py okpt/**/*.py okpt/**/**/*.py -``` - -### Updating requirements - -Add new requirements to "requirements.in" and run `pip-compile` diff --git a/benchmarks/perf-tool/dataset/data.hdf5 b/benchmarks/perf-tool/dataset/data.hdf5 deleted file mode 100644 index c9268606d224befefbc07e7222bd4eaaae061703..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 527648 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

f(4p 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

    nr5;9Rh0JoL`3=@C!KeKFS>rA3y9?H#x#Lcd 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

    >O=!8I9O>|db=1-`A1_3>PdokIW=B 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%0A-|5Xx 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

    @-%P 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 B$}0c> diff --git a/benchmarks/perf-tool/knn-perf-tool.py b/benchmarks/perf-tool/knn-perf-tool.py deleted file mode 100644 index 48eedc427..000000000 --- a/benchmarks/perf-tool/knn-perf-tool.py +++ /dev/null @@ -1,10 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# -# The OpenSearch Contributors require contributions made to -# this file be licensed under the Apache-2.0 license or a -# compatible open source license. -"""Script for user to run the testing tool.""" - -import okpt.main - -okpt.main.main() diff --git a/benchmarks/perf-tool/okpt/__init__.py b/benchmarks/perf-tool/okpt/__init__.py deleted file mode 100644 index c3bffc54c..000000000 --- a/benchmarks/perf-tool/okpt/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# -# The OpenSearch Contributors require contributions made to -# this file be licensed under the Apache-2.0 license or a -# compatible open source license. - diff --git a/benchmarks/perf-tool/okpt/diff/diff.py b/benchmarks/perf-tool/okpt/diff/diff.py deleted file mode 100644 index 23f424ab9..000000000 --- a/benchmarks/perf-tool/okpt/diff/diff.py +++ /dev/null @@ -1,142 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# -# The OpenSearch Contributors require contributions made to -# this file be licensed under the Apache-2.0 license or a -# compatible open source license. - -"""Provides the Diff class.""" - -from enum import Enum -from typing import Any, Dict, Tuple - - -class InvalidTestResultsError(Exception): - """Exception raised when the test results are invalid. - - The results can be invalid if they have different fields, non-numeric - values, or if they don't follow the standard result format. - """ - def __init__(self, msg: str): - self.message = msg - super().__init__(self.message) - - -def _is_numeric(a) -> bool: - return isinstance(a, (int, float)) - - -class TestResultFields(str, Enum): - METADATA = 'metadata' - RESULTS = 'results' - TEST_PARAMETERS = 'test_parameters' - - -class TestResultNames(str, Enum): - BASE = 'base_result' - CHANGED = 'changed_result' - - -class Diff: - """Diff class for validating and diffing two test result files. - - Methods: - diff: Returns the diff between two test results. (changed - base) - """ - def __init__( - self, - base_result: Dict[str, - Any], - changed_result: Dict[str, - Any], - metadata: bool - ): - """Initializes test results and validate them.""" - self.base_result = base_result - self.changed_result = changed_result - self.metadata = metadata - - # make sure results have proper test result fields - is_valid, key, result = self._validate_keys() - if not is_valid: - raise InvalidTestResultsError( - f'{result} has a missing or invalid key `{key}`.' - ) - - self.base_results = self.base_result[TestResultFields.RESULTS] - self.changed_results = self.changed_result[TestResultFields.RESULTS] - - # make sure results have the same fields - is_valid, key, result = self._validate_structure() - if not is_valid: - raise InvalidTestResultsError( - f'key `{key}` is not present in {result}.' - ) - - # make sure results have numeric values - is_valid, key, result = self._validate_types() - if not is_valid: - raise InvalidTestResultsError( - f'key `{key}` in {result} points to a non-numeric value.' - ) - - def _validate_keys(self) -> Tuple[bool, str, str]: - """Ensure both test results have `metadata` and `results` keys.""" - check_keydict = lambda key, res: key in res and isinstance( - res[key], dict) - - # check if results have a `metadata` field and if `metadata` is a dict - if self.metadata: - if not check_keydict(TestResultFields.METADATA, self.base_result): - return (False, TestResultFields.METADATA, TestResultNames.BASE) - if not check_keydict(TestResultFields.METADATA, - self.changed_result): - return ( - False, - TestResultFields.METADATA, - TestResultNames.CHANGED - ) - # check if results have a `results` field and `results` is a dict - if not check_keydict(TestResultFields.RESULTS, self.base_result): - return (False, TestResultFields.RESULTS, TestResultNames.BASE) - if not check_keydict(TestResultFields.RESULTS, self.changed_result): - return (False, TestResultFields.RESULTS, TestResultNames.CHANGED) - return (True, '', '') - - def _validate_structure(self) -> Tuple[bool, str, str]: - """Ensure both test results have the same keys.""" - for k in self.base_results: - if not k in self.changed_results: - return (False, k, TestResultNames.CHANGED) - for k in self.changed_results: - if not k in self.base_results: - return (False, k, TestResultNames.BASE) - return (True, '', '') - - def _validate_types(self) -> Tuple[bool, str, str]: - """Ensure both test results have numeric values.""" - for k, v in self.base_results.items(): - if not _is_numeric(v): - return (False, k, TestResultNames.BASE) - for k, v in self.changed_results.items(): - if not _is_numeric(v): - return (False, k, TestResultNames.BASE) - return (True, '', '') - - def diff(self) -> Dict[str, Any]: - """Return the diff between the two test results. (changed - base)""" - results_diff = { - key: self.changed_results[key] - self.base_results[key] - for key in self.base_results - } - - # add metadata if specified - if self.metadata: - return { - f'{TestResultNames.BASE}_{TestResultFields.METADATA}': - self.base_result[TestResultFields.METADATA], - f'{TestResultNames.CHANGED}_{TestResultFields.METADATA}': - self.changed_result[TestResultFields.METADATA], - 'diff': - results_diff - } - return results_diff diff --git a/benchmarks/perf-tool/okpt/io/args.py b/benchmarks/perf-tool/okpt/io/args.py deleted file mode 100644 index f8c5d8809..000000000 --- a/benchmarks/perf-tool/okpt/io/args.py +++ /dev/null @@ -1,178 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# -# The OpenSearch Contributors require contributions made to -# this file be licensed under the Apache-2.0 license or a -# compatible open source license. - -"""Parses and defines command line arguments for the program. - -Defines the subcommands `test` and `diff` and the corresponding -files that are required by each command. - -Functions: - define_args(): Define the command line arguments. - get_args(): Returns a dictionary of the command line args. -""" - -import argparse -import sys -from dataclasses import dataclass -from io import TextIOWrapper -from typing import Union - -_read_type = argparse.FileType('r') -_write_type = argparse.FileType('w') - - -def _add_config(parser, name, **kwargs): - """"Add configuration file path argument.""" - opts = { - 'type': _read_type, - 'help': 'Path of configuration file.', - 'metavar': 'config_path', - **kwargs, - } - parser.add_argument(name, **opts) - - -def _add_result(parser, name, **kwargs): - """"Add results files paths argument.""" - opts = { - 'type': _read_type, - 'help': 'Path of one result file.', - 'metavar': 'result_path', - **kwargs, - } - parser.add_argument(name, **opts) - - -def _add_results(parser, name, **kwargs): - """"Add results files paths argument.""" - opts = { - 'nargs': '+', - 'type': _read_type, - 'help': 'Paths of result files.', - 'metavar': 'result_paths', - **kwargs, - } - parser.add_argument(name, **opts) - - -def _add_output(parser, name, **kwargs): - """"Add output file path argument.""" - opts = { - 'type': _write_type, - 'help': 'Path of output file.', - 'metavar': 'output_path', - **kwargs, - } - parser.add_argument(name, **opts) - - -def _add_metadata(parser, name, **kwargs): - opts = { - 'action': 'store_true', - **kwargs, - } - parser.add_argument(name, **opts) - - -def _add_test_cmd(subparsers): - test_parser = subparsers.add_parser('test') - _add_config(test_parser, 'config') - _add_output(test_parser, 'output') - - -def _add_diff_cmd(subparsers): - diff_parser = subparsers.add_parser('diff') - _add_metadata(diff_parser, '--metadata') - _add_result( - diff_parser, - 'base_result', - help='Base test result.', - metavar='base_result' - ) - _add_result( - diff_parser, - 'changed_result', - help='Changed test result.', - metavar='changed_result' - ) - _add_output(diff_parser, '--output', default=sys.stdout) - - -@dataclass -class TestArgs: - log: str - command: str - config: TextIOWrapper - output: TextIOWrapper - - -@dataclass -class DiffArgs: - log: str - command: str - metadata: bool - base_result: TextIOWrapper - changed_result: TextIOWrapper - output: TextIOWrapper - - -def get_args() -> Union[TestArgs, DiffArgs]: - """Define, parse and return command line args. - - Returns: - A dict containing the command line args. - """ - parser = argparse.ArgumentParser( - description= - 'Run performance tests against the OpenSearch plugin and various ANN ' - 'libaries.' - ) - - def define_args(): - """Define tool commands.""" - - # add log level arg - parser.add_argument( - '--log', - default='info', - type=str, - choices=['debug', - 'info', - 'warning', - 'error', - 'critical'], - help='Log level of the tool.' - ) - - subparsers = parser.add_subparsers( - title='commands', - dest='command', - help='sub-command help' - ) - subparsers.required = True - - # add subcommands - _add_test_cmd(subparsers) - _add_diff_cmd(subparsers) - - define_args() - args = parser.parse_args() - if args.command == 'test': - return TestArgs( - log=args.log, - command=args.command, - config=args.config, - output=args.output - ) - else: - return DiffArgs( - log=args.log, - command=args.command, - metadata=args.metadata, - base_result=args.base_result, - changed_result=args.changed_result, - output=args.output - ) diff --git a/benchmarks/perf-tool/okpt/io/config/parsers/base.py b/benchmarks/perf-tool/okpt/io/config/parsers/base.py deleted file mode 100644 index 795aab1b2..000000000 --- a/benchmarks/perf-tool/okpt/io/config/parsers/base.py +++ /dev/null @@ -1,67 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# -# The OpenSearch Contributors require contributions made to -# this file be licensed under the Apache-2.0 license or a -# compatible open source license. - -"""Base Parser class. - -Classes: - BaseParser: Base class for config parsers. - -Exceptions: - ConfigurationError: An error in the configuration syntax. -""" - -import os -from io import TextIOWrapper - -import cerberus - -from okpt.io.utils import reader - - -class ConfigurationError(Exception): - """Exception raised for errors in the tool configuration. - - Attributes: - message -- explanation of the error - """ - - def __init__(self, message: str): - self.message = f'{message}' - super().__init__(self.message) - - -def _get_validator_from_schema_name(schema_name: str): - """Get the corresponding Cerberus validator from a schema name.""" - curr_file_dir = os.path.dirname(os.path.abspath(__file__)) - schemas_dir = os.path.join(os.path.dirname(curr_file_dir), 'schemas') - schema_file_path = os.path.join(schemas_dir, f'{schema_name}.yml') - schema_obj = reader.parse_yaml_from_path(schema_file_path) - return cerberus.Validator(schema_obj) - - -class BaseParser: - """Base class for config parsers. - - Attributes: - validator: Cerberus validator for a particular schema - errors: Cerberus validation errors (if any are found during validation) - - Methods: - parse: Parse config. - """ - - def __init__(self, schema_name: str): - self.validator = _get_validator_from_schema_name(schema_name) - self.errors = '' - - def parse(self, file_obj: TextIOWrapper): - """Convert file object to dict, while validating against config schema.""" - config_obj = reader.parse_yaml(file_obj) - is_config_valid = self.validator.validate(config_obj) - if not is_config_valid: - raise ConfigurationError(self.validator.errors) - - return self.validator.document diff --git a/benchmarks/perf-tool/okpt/io/config/parsers/test.py b/benchmarks/perf-tool/okpt/io/config/parsers/test.py deleted file mode 100644 index 34b1752c7..000000000 --- a/benchmarks/perf-tool/okpt/io/config/parsers/test.py +++ /dev/null @@ -1,74 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# -# The OpenSearch Contributors require contributions made to -# this file be licensed under the Apache-2.0 license or a -# compatible open source license. - -"""Provides ToolParser. - -Classes: - ToolParser: Tool config parser. -""" -from dataclasses import dataclass -from io import TextIOWrapper -from typing import List - -from okpt.io.config.parsers import base -from okpt.test.steps.base import Step, StepConfig -from okpt.test.steps.factory import create_step - - -@dataclass -class TestConfig: - test_name: str - test_id: str - endpoint: str - num_runs: int - show_runs: bool - setup: List[Step] - steps: List[Step] - cleanup: List[Step] - - -class TestParser(base.BaseParser): - """Parser for Test config. - - Methods: - parse: Parse and validate the Test config. - """ - - def __init__(self): - super().__init__('test') - - def parse(self, file_obj: TextIOWrapper) -> TestConfig: - """See base class.""" - config_obj = super().parse(file_obj) - - implicit_step_config = dict() - if 'endpoint' in config_obj: - implicit_step_config['endpoint'] = config_obj['endpoint'] - - # Each step should have its own parse - take the config object and check if its valid - setup = [] - if 'setup' in config_obj: - setup = [create_step(StepConfig(step["name"], step, implicit_step_config)) for step in config_obj['setup']] - - steps = [create_step(StepConfig(step["name"], step, implicit_step_config)) for step in config_obj['steps']] - - cleanup = [] - if 'cleanup' in config_obj: - cleanup = [create_step(StepConfig(step["name"], step, implicit_step_config)) for step - in config_obj['cleanup']] - - test_config = TestConfig( - endpoint=config_obj['endpoint'], - test_name=config_obj['test_name'], - test_id=config_obj['test_id'], - num_runs=config_obj['num_runs'], - show_runs=config_obj['show_runs'], - setup=setup, - steps=steps, - cleanup=cleanup - ) - - return test_config diff --git a/benchmarks/perf-tool/okpt/io/config/parsers/util.py b/benchmarks/perf-tool/okpt/io/config/parsers/util.py deleted file mode 100644 index cecb9f2d0..000000000 --- a/benchmarks/perf-tool/okpt/io/config/parsers/util.py +++ /dev/null @@ -1,116 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# -# The OpenSearch Contributors require contributions made to -# this file be licensed under the Apache-2.0 license or a -# compatible open source license. - -"""Utility functions for parsing""" - - -from okpt.io.config.parsers.base import ConfigurationError -from okpt.io.dataset import HDF5DataSet, BigANNNeighborDataSet, \ - BigANNVectorDataSet, DataSet, Context - - -def parse_dataset(dataset_format: str, dataset_path: str, - context: Context) -> DataSet: - if dataset_format == 'hdf5': - return HDF5DataSet(dataset_path, context) - - if dataset_format == 'bigann' and context == Context.NEIGHBORS: - return BigANNNeighborDataSet(dataset_path) - - if dataset_format == 'bigann': - return BigANNVectorDataSet(dataset_path) - - raise Exception("Unsupported data-set format") - - -def parse_string_param(key: str, first_map, second_map, default) -> str: - value = first_map.get(key) - if value is not None: - if type(value) is str: - return value - raise ConfigurationError("Invalid type for {}".format(key)) - - value = second_map.get(key) - if value is not None: - if type(value) is str: - return value - raise ConfigurationError("Invalid type for {}".format(key)) - - if default is None: - raise ConfigurationError("{} must be set".format(key)) - return default - - -def parse_int_param(key: str, first_map, second_map, default) -> int: - value = first_map.get(key) - if value is not None: - if type(value) is int: - return value - raise ConfigurationError("Invalid type for {}".format(key)) - - value = second_map.get(key) - if value is not None: - if type(value) is int: - return value - raise ConfigurationError("Invalid type for {}".format(key)) - - if default is None: - raise ConfigurationError("{} must be set".format(key)) - return default - - -def parse_bool_param(key: str, first_map, second_map, default) -> bool: - value = first_map.get(key) - if value is not None: - if type(value) is bool: - return value - raise ConfigurationError("Invalid type for {}".format(key)) - - value = second_map.get(key) - if value is not None: - if type(value) is bool: - return value - raise ConfigurationError("Invalid type for {}".format(key)) - - if default is None: - raise ConfigurationError("{} must be set".format(key)) - return default - - -def parse_dict_param(key: str, first_map, second_map, default) -> dict: - value = first_map.get(key) - if value is not None: - if type(value) is dict: - return value - raise ConfigurationError("Invalid type for {}".format(key)) - - value = second_map.get(key) - if value is not None: - if type(value) is dict: - return value - raise ConfigurationError("Invalid type for {}".format(key)) - - if default is None: - raise ConfigurationError("{} must be set".format(key)) - return default - - -def parse_list_param(key: str, first_map, second_map, default) -> list: - value = first_map.get(key) - if value is not None: - if type(value) is list: - return value - raise ConfigurationError("Invalid type for {}".format(key)) - - value = second_map.get(key) - if value is not None: - if type(value) is list: - return value - raise ConfigurationError("Invalid type for {}".format(key)) - - if default is None: - raise ConfigurationError("{} must be set".format(key)) - return default diff --git a/benchmarks/perf-tool/okpt/io/config/schemas/test.yml b/benchmarks/perf-tool/okpt/io/config/schemas/test.yml deleted file mode 100644 index 1939a8a31..000000000 --- a/benchmarks/perf-tool/okpt/io/config/schemas/test.yml +++ /dev/null @@ -1,29 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# -# The OpenSearch Contributors require contributions made to -# this file be licensed under the Apache-2.0 license or a -# compatible open source license. - -# defined using the cerberus validation API -# https://docs.python-cerberus.org/en/stable/index.html -endpoint: - type: string - default: "localhost" -test_name: - type: string -test_id: - type: string -num_runs: - type: integer - default: 1 - min: 1 - max: 10000 -show_runs: - type: boolean - default: false -setup: - type: list -steps: - type: list -cleanup: - type: list diff --git a/benchmarks/perf-tool/okpt/io/dataset.py b/benchmarks/perf-tool/okpt/io/dataset.py deleted file mode 100644 index 4f8bc22a2..000000000 --- a/benchmarks/perf-tool/okpt/io/dataset.py +++ /dev/null @@ -1,218 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# -# The OpenSearch Contributors require contributions made to -# this file be licensed under the Apache-2.0 license or a -# compatible open source license. - -"""Defines DataSet interface and implements particular formats - -A DataSet is the basic functionality that it can be read in chunks, or -read completely and reset to the start. - -Currently, we support HDF5 formats from ann-benchmarks and big-ann-benchmarks -datasets. - -Classes: - HDF5DataSet: Format used in ann-benchmarks - BigANNNeighborDataSet: Neighbor format for big-ann-benchmarks - BigANNVectorDataSet: Vector format for big-ann-benchmarks -""" -import os -from abc import ABC, ABCMeta, abstractmethod -from enum import Enum -from typing import cast -import h5py -import numpy as np - -import struct - - -class Context(Enum): - """DataSet context enum. Can be used to add additional context for how a - data-set should be interpreted. - """ - INDEX = 1 - QUERY = 2 - NEIGHBORS = 3 - - -class DataSet(ABC): - """DataSet interface. Used for reading data-sets from files. - - Methods: - read: Read a chunk of data from the data-set - size: Gets the number of items in the data-set - reset: Resets internal state of data-set to beginning - """ - __metaclass__ = ABCMeta - - @abstractmethod - def read(self, chunk_size: int): - pass - - @abstractmethod - def size(self): - pass - - @abstractmethod - def reset(self): - pass - - -class HDF5DataSet(DataSet): - """ Data-set format corresponding to `ANN Benchmarks - `_ - """ - - def __init__(self, dataset_path: str, context: Context): - file = h5py.File(dataset_path) - self.data = cast(h5py.Dataset, file[self._parse_context(context)]) - self.current = 0 - - def read(self, chunk_size: int): - if self.current >= self.size(): - return None - - end_i = self.current + chunk_size - if end_i > self.size(): - end_i = self.size() - - v = cast(np.ndarray, self.data[self.current:end_i]) - self.current = end_i - return v - - def size(self): - return self.data.len() - - def reset(self): - self.current = 0 - - @staticmethod - def _parse_context(context: Context) -> str: - if context == Context.NEIGHBORS: - return "neighbors" - - if context == Context.INDEX: - return "train" - - if context == Context.QUERY: - return "test" - - raise Exception("Unsupported context") - - -class BigANNNeighborDataSet(DataSet): - """ Data-set format for neighbor data-sets for `Big ANN Benchmarks - `_""" - - def __init__(self, dataset_path: str): - self.file = open(dataset_path, 'rb') - self.file.seek(0, os.SEEK_END) - num_bytes = self.file.tell() - self.file.seek(0) - - if num_bytes < 8: - raise Exception("File is invalid") - - self.num_queries = int.from_bytes(self.file.read(4), "little") - self.k = int.from_bytes(self.file.read(4), "little") - - # According to the website, the number of bytes that will follow will - # be: num_queries X K x sizeof(uint32_t) bytes + num_queries X K x - # sizeof(float) - if (num_bytes - 8) != 2 * (self.num_queries * self.k * 4): - raise Exception("File is invalid") - - self.current = 0 - - def read(self, chunk_size: int): - if self.current >= self.size(): - return None - - end_i = self.current + chunk_size - if end_i > self.size(): - end_i = self.size() - - v = [[int.from_bytes(self.file.read(4), "little") for _ in - range(self.k)] for _ in range(end_i - self.current)] - - self.current = end_i - return v - - def size(self): - return self.num_queries - - def reset(self): - self.file.seek(8) - self.current = 0 - - -class BigANNVectorDataSet(DataSet): - """ Data-set format for vector data-sets for `Big ANN Benchmarks - `_ - """ - - def __init__(self, dataset_path: str): - self.file = open(dataset_path, 'rb') - self.file.seek(0, os.SEEK_END) - num_bytes = self.file.tell() - self.file.seek(0) - - if num_bytes < 8: - raise Exception("File is invalid") - - self.num_points = int.from_bytes(self.file.read(4), "little") - self.dimension = int.from_bytes(self.file.read(4), "little") - bytes_per_num = self._get_data_size(dataset_path) - - if (num_bytes - 8) != self.num_points * self.dimension * bytes_per_num: - raise Exception("File is invalid") - - self.reader = self._value_reader(dataset_path) - self.current = 0 - - def read(self, chunk_size: int): - if self.current >= self.size(): - return None - - end_i = self.current + chunk_size - if end_i > self.size(): - end_i = self.size() - - v = np.asarray([self._read_vector() for _ in - range(end_i - self.current)]) - self.current = end_i - return v - - def _read_vector(self): - return np.asarray([self.reader(self.file) for _ in - range(self.dimension)]) - - def size(self): - return self.num_points - - def reset(self): - self.file.seek(8) # Seek to 8 bytes to skip re-reading metadata - self.current = 0 - - @staticmethod - def _get_data_size(file_name): - ext = file_name.split('.')[-1] - if ext == "u8bin": - return 1 - - if ext == "fbin": - return 4 - - raise Exception("Unknown extension") - - @staticmethod - def _value_reader(file_name): - ext = file_name.split('.')[-1] - if ext == "u8bin": - return lambda file: float(int.from_bytes(file.read(1), "little")) - - if ext == "fbin": - return lambda file: struct.unpack(' TextIOWrapper: - """Given a file path, get a readable file object. - - Args: - file path - - Returns: - Writeable file object - """ - return open(path, 'r', encoding='UTF-8') - - -def parse_yaml(file: TextIOWrapper) -> Dict[str, Any]: - """Parses YAML file from file object. - - Args: - file: file object to parse - - Returns: - A dict representing the YAML file. - """ - return yaml.load(file, Loader=yaml.SafeLoader) - - -def parse_yaml_from_path(path: str) -> Dict[str, Any]: - """Parses YAML file from file path. - - Args: - path: file path to parse - - Returns: - A dict representing the YAML file. - """ - file = reader.get_file_obj(path) - return parse_yaml(file) - - -def parse_json(file: TextIOWrapper) -> Dict[str, Any]: - """Parses JSON file from file object. - - Args: - file: file object to parse - - Returns: - A dict representing the JSON file. - """ - return json.load(file) - - -def parse_json_from_path(path: str) -> Dict[str, Any]: - """Parses JSON file from file path. - - Args: - path: file path to parse - - Returns: - A dict representing the JSON file. - """ - file = reader.get_file_obj(path) - return json.load(file) diff --git a/benchmarks/perf-tool/okpt/io/utils/writer.py b/benchmarks/perf-tool/okpt/io/utils/writer.py deleted file mode 100644 index 1f14bfd94..000000000 --- a/benchmarks/perf-tool/okpt/io/utils/writer.py +++ /dev/null @@ -1,40 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# -# The OpenSearch Contributors require contributions made to -# this file be licensed under the Apache-2.0 license or a -# compatible open source license. -"""Provides functions for writing to file. - -Functions: - get_file_obj(): Get a writeable file object. - write_json(): Writes a python dictionary to a JSON file -""" - -import json -from io import TextIOWrapper -from typing import Any, Dict, TextIO, Union - - -def get_file_obj(path: str) -> TextIOWrapper: - """Get a writeable file object from a file path. - - Args: - file path - - Returns: - Writeable file object - """ - return open(path, 'w', encoding='UTF-8') - - -def write_json(data: Dict[str, Any], - file: Union[TextIOWrapper, TextIO], - pretty=False): - """Writes a dictionary to a JSON file. - - Args: - data: A dict to write to JSON. - file: Path of output file. - """ - indent = 2 if pretty else 0 - json.dump(data, file, indent=indent) diff --git a/benchmarks/perf-tool/okpt/main.py b/benchmarks/perf-tool/okpt/main.py deleted file mode 100644 index 3e6e022d4..000000000 --- a/benchmarks/perf-tool/okpt/main.py +++ /dev/null @@ -1,55 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# -# The OpenSearch Contributors require contributions made to -# this file be licensed under the Apache-2.0 license or a -# compatible open source license. - -""" Runner script that serves as the main controller of the testing tool.""" - -import logging -import sys -from typing import cast - -from okpt.diff import diff -from okpt.io import args -from okpt.io.config.parsers import test -from okpt.io.utils import reader, writer -from okpt.test import runner - - -def main(): - """Main function of entry module.""" - cli_args = args.get_args() - output = cli_args.output - if cli_args.log: - log_level = getattr(logging, cli_args.log.upper()) - logging.basicConfig(level=log_level) - - if cli_args.command == 'test': - cli_args = cast(args.TestArgs, cli_args) - - # parse config - parser = test.TestParser() - test_config = parser.parse(cli_args.config) - logging.info('Configs are valid.') - - # run tests - test_runner = runner.TestRunner(test_config=test_config) - test_result = test_runner.execute() - - # write test results - logging.debug( - f'Test Result:\n {writer.write_json(test_result, sys.stdout, pretty=True)}' - ) - writer.write_json(test_result, output, pretty=True) - elif cli_args.command == 'diff': - cli_args = cast(args.DiffArgs, cli_args) - - # parse test results - base_result = reader.parse_json(cli_args.base_result) - changed_result = reader.parse_json(cli_args.changed_result) - - # get diff - diff_result = diff.Diff(base_result, changed_result, - cli_args.metadata).diff() - writer.write_json(data=diff_result, file=output, pretty=True) diff --git a/benchmarks/perf-tool/okpt/test/__init__.py b/benchmarks/perf-tool/okpt/test/__init__.py deleted file mode 100644 index ff4fd04d1..000000000 --- a/benchmarks/perf-tool/okpt/test/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# -# The OpenSearch Contributors require contributions made to -# this file be licensed under the Apache-2.0 license or a -# compatible open source license. diff --git a/benchmarks/perf-tool/okpt/test/profile.py b/benchmarks/perf-tool/okpt/test/profile.py deleted file mode 100644 index d96860f9a..000000000 --- a/benchmarks/perf-tool/okpt/test/profile.py +++ /dev/null @@ -1,86 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# -# The OpenSearch Contributors require contributions made to -# this file be licensed under the Apache-2.0 license or a -# compatible open source license. - -"""Provides decorators to profile functions. - -The decorators work by adding a `measureable` (time, memory, etc) field to a -dictionary returned by the wrapped function. So the wrapped functions must -return a dictionary in order to be profiled. -""" -import functools -import time -from typing import Callable - - -class TimerStoppedWithoutStartingError(Exception): - """Error raised when Timer is stopped without having been started.""" - - def __init__(self): - super().__init__() - self.message = 'Timer must call start() before calling end().' - - -class _Timer(): - """Timer class for timing. - - Methods: - start: Starts the timer. - end: Stops the timer and returns the time elapsed since start. - - Raises: - TimerStoppedWithoutStartingError: Timer must start before ending. - """ - - def __init__(self): - self.start_time = None - - def start(self): - """Starts the timer.""" - self.start_time = time.perf_counter() - - def end(self) -> float: - """Stops the timer. - - Returns: - The time elapsed in milliseconds. - """ - # ensure timer has started before ending - if self.start_time is None: - raise TimerStoppedWithoutStartingError() - - elapsed = (time.perf_counter() - self.start_time) * 1000 - self.start_time = None - return elapsed - - -def took(f: Callable): - """Profiles a functions execution time. - - Args: - f: Function to profile. - - Returns: - A function that wraps the passed in function and adds a time took field - to the return value. - """ - - @functools.wraps(f) - def wrapper(*args, **kwargs): - """Wrapper function.""" - timer = _Timer() - timer.start() - result = f(*args, **kwargs) - time_took = timer.end() - - # if result already has a `took` field, don't modify the result - if isinstance(result, dict) and 'took' in result: - return result - # `result` may not be a dictionary, so it may not be unpackable - elif isinstance(result, dict): - return {**result, 'took': time_took} - return {'took': time_took} - - return wrapper diff --git a/benchmarks/perf-tool/okpt/test/runner.py b/benchmarks/perf-tool/okpt/test/runner.py deleted file mode 100644 index 150154691..000000000 --- a/benchmarks/perf-tool/okpt/test/runner.py +++ /dev/null @@ -1,107 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# -# The OpenSearch Contributors require contributions made to -# this file be licensed under the Apache-2.0 license or a -# compatible open source license. - -"""Provides a test runner class.""" -import logging -import platform -import sys -from datetime import datetime -from typing import Any, Dict, List - -import psutil - -from okpt.io.config.parsers import test -from okpt.test.test import Test, get_avg - - -def _aggregate_runs(runs: List[Dict[str, Any]]): - """Aggregates and averages a list of test results. - - Args: - results: A list of test results. - num_runs: Number of times the tests were ran. - - Returns: - A dictionary containing the averages of the test results. - """ - aggregate: Dict[str, Any] = {} - for run in runs: - for key, value in run.items(): - if key in aggregate: - aggregate[key].append(value) - else: - aggregate[key] = [value] - - aggregate = {key: get_avg(value) for key, value in aggregate.items()} - return aggregate - - -class TestRunner: - """Test runner class for running tests and aggregating the results. - - Methods: - execute: Run the tests and aggregate the results. - """ - - def __init__(self, test_config: test.TestConfig): - """"Initializes test state.""" - self.test_config = test_config - self.test = Test(test_config) - - def _get_metadata(self): - """"Retrieves the test metadata.""" - svmem = psutil.virtual_memory() - return { - 'test_name': - self.test_config.test_name, - 'test_id': - self.test_config.test_id, - 'date': - datetime.now().strftime('%m/%d/%Y %H:%M:%S'), - 'python_version': - sys.version, - 'os_version': - platform.platform(), - 'processor': - platform.processor() + ', ' + - str(psutil.cpu_count(logical=True)) + ' cores', - 'memory': - str(svmem.used) + ' (used) / ' + str(svmem.available) + - ' (available) / ' + str(svmem.total) + ' (total)', - } - - def execute(self) -> Dict[str, Any]: - """Runs the tests and aggregates the results. - - Returns: - A dictionary containing the aggregate of test results. - """ - logging.info('Setting up tests.') - self.test.setup() - logging.info('Beginning to run tests.') - runs = [] - for i in range(self.test_config.num_runs): - logging.info( - f'Running test {i + 1} of {self.test_config.num_runs}' - ) - runs.append(self.test.execute()) - - logging.info('Finished running tests.') - aggregate = _aggregate_runs(runs) - - # add metadata to test results - test_result = { - 'metadata': - self._get_metadata(), - 'results': - aggregate - } - - # include info about all test runs if specified in config - if self.test_config.show_runs: - test_result['runs'] = runs - - return test_result diff --git a/benchmarks/perf-tool/okpt/test/steps/base.py b/benchmarks/perf-tool/okpt/test/steps/base.py deleted file mode 100644 index 829980421..000000000 --- a/benchmarks/perf-tool/okpt/test/steps/base.py +++ /dev/null @@ -1,60 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# -# The OpenSearch Contributors require contributions made to -# this file be licensed under the Apache-2.0 license or a -# compatible open source license. -"""Provides base Step interface.""" - -from dataclasses import dataclass -from typing import Any, Dict, List - -from okpt.test import profile - - -@dataclass -class StepConfig: - step_name: str - config: Dict[str, object] - implicit_config: Dict[str, object] - - -class Step: - """Test step interface. - - Attributes: - label: Name of the step. - - Methods: - execute: Run the step and return a step response with the label and - corresponding measures. - """ - - label = 'base_step' - - def __init__(self, step_config: StepConfig): - self.step_config = step_config - - def _action(self): - """Step logic/behavior to be executed and profiled.""" - pass - - def _get_measures(self) -> List[str]: - """Gets the measures for a particular test""" - pass - - def execute(self) -> List[Dict[str, Any]]: - """Execute step logic while profiling various measures. - - Returns: - Dict containing step label and various step measures. - """ - action = self._action - - # profile the action with measure decorators - add if necessary - action = getattr(profile, 'took')(action) - - result = action() - if isinstance(result, dict): - return [{'label': self.label, **result}] - - raise ValueError('Invalid return by a step') diff --git a/benchmarks/perf-tool/okpt/test/steps/factory.py b/benchmarks/perf-tool/okpt/test/steps/factory.py deleted file mode 100644 index cb0789dec..000000000 --- a/benchmarks/perf-tool/okpt/test/steps/factory.py +++ /dev/null @@ -1,35 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# -# The OpenSearch Contributors require contributions made to -# this file be licensed under the Apache-2.0 license or a -# compatible open source license. -"""Factory for creating steps.""" - -from okpt.io.config.parsers.base import ConfigurationError -from okpt.test.steps.base import Step, StepConfig - -from okpt.test.steps.steps import CreateIndexStep, DisableRefreshStep, RefreshIndexStep, DeleteIndexStep, \ - TrainModelStep, DeleteModelStep, ForceMergeStep, IngestStep, QueryStep - - -def create_step(step_config: StepConfig) -> Step: - if step_config.step_name == CreateIndexStep.label: - return CreateIndexStep(step_config) - elif step_config.step_name == DisableRefreshStep.label: - return DisableRefreshStep(step_config) - elif step_config.step_name == RefreshIndexStep.label: - return RefreshIndexStep(step_config) - elif step_config.step_name == TrainModelStep.label: - return TrainModelStep(step_config) - elif step_config.step_name == DeleteModelStep.label: - return DeleteModelStep(step_config) - elif step_config.step_name == DeleteIndexStep.label: - return DeleteIndexStep(step_config) - elif step_config.step_name == IngestStep.label: - return IngestStep(step_config) - elif step_config.step_name == QueryStep.label: - return QueryStep(step_config) - elif step_config.step_name == ForceMergeStep.label: - return ForceMergeStep(step_config) - - raise ConfigurationError(f'Invalid step {step_config.step_name}') diff --git a/benchmarks/perf-tool/okpt/test/steps/steps.py b/benchmarks/perf-tool/okpt/test/steps/steps.py deleted file mode 100644 index 7230bc1f4..000000000 --- a/benchmarks/perf-tool/okpt/test/steps/steps.py +++ /dev/null @@ -1,557 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# -# The OpenSearch Contributors require contributions made to -# this file be licensed under the Apache-2.0 license or a -# compatible open source license. -"""Provides steps for OpenSearch tests. - -Some of the OpenSearch operations return a `took` field in the response body, -so the profiling decorators aren't needed for some functions. -""" -import json -from typing import Any, Dict, List - -import numpy as np -import requests -import time - -from opensearchpy import OpenSearch, RequestsHttpConnection - -from okpt.io.config.parsers.base import ConfigurationError -from okpt.io.config.parsers.util import parse_string_param, parse_int_param, parse_dataset, parse_bool_param -from okpt.io.dataset import Context -from okpt.io.utils.reader import parse_json_from_path -from okpt.test.steps import base -from okpt.test.steps.base import StepConfig - - -class OpenSearchStep(base.Step): - """See base class.""" - - def __init__(self, step_config: StepConfig): - super().__init__(step_config) - self.endpoint = parse_string_param('endpoint', step_config.config, - step_config.implicit_config, - 'localhost') - default_port = 9200 if self.endpoint == 'localhost' else 80 - self.port = parse_int_param('port', step_config.config, - step_config.implicit_config, default_port) - self.opensearch = get_opensearch_client(str(self.endpoint), - int(self.port)) - - -class CreateIndexStep(OpenSearchStep): - """See base class.""" - - label = 'create_index' - - def __init__(self, step_config: StepConfig): - super().__init__(step_config) - self.index_name = parse_string_param('index_name', step_config.config, - {}, None) - index_spec = parse_string_param('index_spec', step_config.config, {}, - None) - self.body = parse_json_from_path(index_spec) - if self.body is None: - raise ConfigurationError('Index body must be passed in') - - def _action(self): - """Creates an OpenSearch index, applying the index settings/mappings. - - Returns: - An OpenSearch index creation response body. - """ - self.opensearch.indices.create(index=self.index_name, body=self.body) - return {} - - def _get_measures(self) -> List[str]: - return ['took'] - - -class DisableRefreshStep(OpenSearchStep): - """See base class.""" - - label = 'disable_refresh' - - def _action(self): - """Disables the refresh interval for an OpenSearch index. - - Returns: - An OpenSearch index settings update response body. - """ - self.opensearch.indices.put_settings( - body={'index': { - 'refresh_interval': -1 - }}) - - return {} - - def _get_measures(self) -> List[str]: - return ['took'] - - -class RefreshIndexStep(OpenSearchStep): - """See base class.""" - - label = 'refresh_index' - - def __init__(self, step_config: StepConfig): - super().__init__(step_config) - self.index_name = parse_string_param('index_name', step_config.config, - {}, None) - - def _action(self): - while True: - try: - self.opensearch.indices.refresh(index=self.index_name) - return {'store_kb': get_index_size_in_kb(self.opensearch, - self.index_name)} - except: - pass - - def _get_measures(self) -> List[str]: - return ['took', 'store_kb'] - - -class ForceMergeStep(OpenSearchStep): - """See base class.""" - - label = 'force_merge' - - def __init__(self, step_config: StepConfig): - super().__init__(step_config) - self.index_name = parse_string_param('index_name', step_config.config, - {}, None) - self.max_num_segments = parse_int_param('max_num_segments', - step_config.config, {}, None) - - def _action(self): - while True: - try: - self.opensearch.indices.forcemerge( - index=self.index_name, - max_num_segments=self.max_num_segments) - return {} - except: - pass - - def _get_measures(self) -> List[str]: - return ['took'] - - -class TrainModelStep(OpenSearchStep): - """See base class.""" - - label = 'train_model' - - def __init__(self, step_config: StepConfig): - super().__init__(step_config) - - self.model_id = parse_string_param('model_id', step_config.config, {}, - 'Test') - self.train_index_name = parse_string_param('train_index', - step_config.config, {}, None) - self.train_index_field = parse_string_param('train_field', - step_config.config, {}, - None) - self.dimension = parse_int_param('dimension', step_config.config, {}, - None) - self.description = parse_string_param('description', step_config.config, - {}, 'Default') - self.max_training_vector_count = parse_int_param( - 'max_training_vector_count', step_config.config, {}, 10000000000000) - - method_spec = parse_string_param('method_spec', step_config.config, {}, - None) - self.method = parse_json_from_path(method_spec) - if self.method is None: - raise ConfigurationError('method must be passed in') - - def _action(self): - """Train a model for an index. - - Returns: - The trained model - """ - - # Build body - body = { - 'training_index': self.train_index_name, - 'training_field': self.train_index_field, - 'description': self.description, - 'dimension': self.dimension, - 'method': self.method, - 'max_training_vector_count': self.max_training_vector_count - } - - # So, we trained the model. Now we need to wait until we have to wait - # until the model is created. Poll every - # 1/10 second - requests.post('http://' + self.endpoint + ':' + str(self.port) + - '/_plugins/_knn/models/' + str(self.model_id) + '/_train', - json.dumps(body), - headers={'content-type': 'application/json'}) - - sleep_time = 0.1 - timeout = 100000 - i = 0 - while i < timeout: - time.sleep(sleep_time) - model_response = get_model(self.endpoint, self.port, self.model_id) - if 'state' in model_response.keys() and model_response['state'] == \ - 'created': - return {} - i += 1 - - raise TimeoutError('Failed to create model') - - def _get_measures(self) -> List[str]: - return ['took'] - - -class DeleteModelStep(OpenSearchStep): - """See base class.""" - - label = 'delete_model' - - def __init__(self, step_config: StepConfig): - super().__init__(step_config) - - self.model_id = parse_string_param('model_id', step_config.config, {}, - 'Test') - - def _action(self): - """Train a model for an index. - - Returns: - The trained model - """ - delete_model(self.endpoint, self.port, self.model_id) - return {} - - def _get_measures(self) -> List[str]: - return ['took'] - - -class DeleteIndexStep(OpenSearchStep): - """See base class.""" - - label = 'delete_index' - - def __init__(self, step_config: StepConfig): - super().__init__(step_config) - - self.index_name = parse_string_param('index_name', step_config.config, - {}, None) - - def _action(self): - """Delete the index - - Returns: - An empty dict - """ - delete_index(self.opensearch, self.index_name) - return {} - - def _get_measures(self) -> List[str]: - return ['took'] - - -class IngestStep(OpenSearchStep): - """See base class.""" - - label = 'ingest' - - def __init__(self, step_config: StepConfig): - super().__init__(step_config) - self.index_name = parse_string_param('index_name', step_config.config, - {}, None) - self.field_name = parse_string_param('field_name', step_config.config, - {}, None) - self.bulk_size = parse_int_param('bulk_size', step_config.config, {}, - 300) - self.implicit_config = step_config.implicit_config - dataset_format = parse_string_param('dataset_format', - step_config.config, {}, 'hdf5') - dataset_path = parse_string_param('dataset_path', step_config.config, - {}, None) - self.dataset = parse_dataset(dataset_format, dataset_path, - Context.INDEX) - - input_doc_count = parse_int_param('doc_count', step_config.config, {}, - self.dataset.size()) - self.doc_count = min(input_doc_count, self.dataset.size()) - - def _action(self): - - def action(doc_id): - return {'index': {'_index': self.index_name, '_id': doc_id}} - - # Maintain minimal state outside of this loop. For large data sets, too - # much state may cause out of memory failure - for i in range(0, self.doc_count, self.bulk_size): - partition = self.dataset.read(self.bulk_size) - if partition is None: - break - body = bulk_transform(partition, self.field_name, action, i) - bulk_index(self.opensearch, self.index_name, body) - - self.dataset.reset() - - return {} - - def _get_measures(self) -> List[str]: - return ['took'] - - -class QueryStep(OpenSearchStep): - """See base class.""" - - label = 'query' - - def __init__(self, step_config: StepConfig): - super().__init__(step_config) - self.k = parse_int_param('k', step_config.config, {}, 100) - self.r = parse_int_param('r', step_config.config, {}, 1) - self.index_name = parse_string_param('index_name', step_config.config, - {}, None) - self.field_name = parse_string_param('field_name', step_config.config, - {}, None) - self.calculate_recall = parse_bool_param('calculate_recall', - step_config.config, {}, False) - dataset_format = parse_string_param('dataset_format', - step_config.config, {}, 'hdf5') - dataset_path = parse_string_param('dataset_path', - step_config.config, {}, None) - self.dataset = parse_dataset(dataset_format, dataset_path, - Context.QUERY) - - input_query_count = parse_int_param('query_count', - step_config.config, {}, - self.dataset.size()) - self.query_count = min(input_query_count, self.dataset.size()) - - neighbors_format = parse_string_param('neighbors_format', - step_config.config, {}, 'hdf5') - neighbors_path = parse_string_param('neighbors_path', - step_config.config, {}, None) - self.neighbors = parse_dataset(neighbors_format, neighbors_path, - Context.NEIGHBORS) - self.implicit_config = step_config.implicit_config - - def _action(self): - - def get_body(vec): - return { - 'size': self.k, - 'query': { - 'knn': { - self.field_name: { - 'vector': vec, - 'k': self.k - } - } - } - } - - results = {} - query_responses = [] - for _ in range(self.query_count): - query = self.dataset.read(1) - if query is None: - break - query_responses.append( - query_index(self.opensearch, self.index_name, - get_body(query[0]), [self.field_name])) - - results['took'] = [ - float(query_response['took']) for query_response in query_responses - ] - results['memory_kb'] = get_cache_size_in_kb(self.endpoint, 80) - - if self.calculate_recall: - ids = [[int(hit['_id']) - for hit in query_response['hits']['hits']] - for query_response in query_responses] - results['recall@K'] = recall_at_r(ids, self.neighbors, - self.k, self.k, self.query_count) - self.neighbors.reset() - results[f'recall@{str(self.r)}'] = recall_at_r( - ids, self.neighbors, self.r, self.k, self.query_count) - self.neighbors.reset() - - self.dataset.reset() - - return results - - def _get_measures(self) -> List[str]: - measures = ['took', 'memory_kb'] - - if self.calculate_recall: - measures.extend(['recall@K', f'recall@{str(self.r)}']) - - return measures - - -# Helper functions - (AKA not steps) -def bulk_transform(partition: np.ndarray, field_name: str, action, - offset: int) -> List[Dict[str, Any]]: - """Partitions and transforms a list of vectors into OpenSearch's bulk - injection format. - Args: - offset: to start counting from - partition: An array of vectors to transform. - field_name: field name for action - action: Bulk API action. - Returns: - An array of transformed vectors in bulk format. - """ - actions = [] - _ = [ - actions.extend([action(i + offset), None]) - for i in range(len(partition)) - ] - actions[1::2] = [{field_name: vec} for vec in partition.tolist()] - return actions - - -def delete_index(opensearch: OpenSearch, index_name: str): - """Deletes an OpenSearch index. - - Args: - opensearch: An OpenSearch client. - index_name: Name of the OpenSearch index to be deleted. - """ - opensearch.indices.delete(index=index_name, ignore=[400, 404]) - - -def get_model(endpoint, port, model_id): - """ - Retrieve a model from an OpenSearch cluster - Args: - endpoint: Endpoint OpenSearch is running on - port: Port OpenSearch is running on - model_id: ID of model to be deleted - Returns: - Get model response - """ - response = requests.get('http://' + endpoint + ':' + str(port) + - '/_plugins/_knn/models/' + model_id, - headers={'content-type': 'application/json'}) - return response.json() - - -def delete_model(endpoint, port, model_id): - """ - Deletes a model from OpenSearch cluster - Args: - endpoint: Endpoint OpenSearch is running on - port: Port OpenSearch is running on - model_id: ID of model to be deleted - Returns: - Deleted model response - """ - response = requests.delete('http://' + endpoint + ':' + str(port) + - '/_plugins/_knn/models/' + model_id, - headers={'content-type': 'application/json'}) - return response.json() - - -def get_opensearch_client(endpoint: str, port: int): - """ - Get an opensearch client from an endpoint and port - Args: - endpoint: Endpoint OpenSearch is running on - port: Port OpenSearch is running on - Returns: - OpenSearch client - - """ - # TODO: fix for security in the future - return OpenSearch( - hosts=[{ - 'host': endpoint, - 'port': port - }], - use_ssl=False, - verify_certs=False, - connection_class=RequestsHttpConnection, - timeout=60, - ) - - -def recall_at_r(results, neighbor_dataset, r, k, query_count): - """ - Calculates the recall@R for a set of queries against a ground truth nearest - neighbor set - Args: - results: 2D list containing ids of results returned by OpenSearch. - results[i][j] i refers to query, j refers to - result in the query - neighbor_dataset: 2D dataset containing ids of the true nearest - neighbors for a set of queries - r: number of top results to check if they are in the ground truth k-NN - set. - k: k value for the query - query_count: number of queries - Returns: - Recall at R - """ - correct = 0.0 - for query in range(query_count): - true_neighbors = neighbor_dataset.read(1) - if true_neighbors is None: - break - true_neighbors_set = set(true_neighbors[0][:k]) - for j in range(r): - if results[query][j] in true_neighbors_set: - correct += 1.0 - - return correct / (r * query_count) - - -def get_index_size_in_kb(opensearch, index_name): - """ - Gets the size of an index in kilobytes - Args: - opensearch: opensearch client - index_name: name of index to look up - Returns: - size of index in kilobytes - """ - return int( - opensearch.indices.stats(index_name, metric='store')['indices'] - [index_name]['total']['store']['size_in_bytes']) / 1024 - - -def get_cache_size_in_kb(endpoint, port): - """ - Gets the size of the k-NN cache in kilobytes - Args: - endpoint: endpoint of OpenSearch cluster - port: port of endpoint OpenSearch is running on - Returns: - size of cache in kilobytes - """ - response = requests.get('http://' + endpoint + ':' + str(port) + - '/_plugins/_knn/stats', - headers={'content-type': 'application/json'}) - stats = response.json() - - keys = stats['nodes'].keys() - - total_used = 0 - for key in keys: - total_used += int(stats['nodes'][key]['graph_memory_usage']) - return total_used - - -def query_index(opensearch: OpenSearch, index_name: str, body: dict, - excluded_fields: list): - return opensearch.search(index=index_name, - body=body, - _source_excludes=excluded_fields) - - -def bulk_index(opensearch: OpenSearch, index_name: str, body: List): - return opensearch.bulk(index=index_name, body=body, timeout='5m') diff --git a/benchmarks/perf-tool/okpt/test/test.py b/benchmarks/perf-tool/okpt/test/test.py deleted file mode 100644 index dbd65d053..000000000 --- a/benchmarks/perf-tool/okpt/test/test.py +++ /dev/null @@ -1,180 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# -# The OpenSearch Contributors require contributions made to -# this file be licensed under the Apache-2.0 license or a -# compatible open source license. - -"""Provides a base Test class.""" -from math import floor -from typing import Any, Dict, List - -from okpt.io.config.parsers.test import TestConfig -from okpt.test.steps.base import Step - - -def get_avg(values: List[Any]): - """Get average value of a list. - - Args: - values: A list of values. - - Returns: - The average value in the list. - """ - valid_total = len(values) - running_sum = 0.0 - - for value in values: - if value == -1: - valid_total -= 1 - continue - running_sum += value - - if valid_total == 0: - return -1 - return running_sum / valid_total - - -def _pxx(values: List[Any], p: float): - """Calculates the pXX statistics for a given list. - - Args: - values: List of values. - p: Percentile (between 0 and 1). - - Returns: - The corresponding pXX metric. - """ - lowest_percentile = 1 / len(values) - highest_percentile = (len(values) - 1) / len(values) - - # return -1 if p is out of range or if the list doesn't have enough elements - # to support the specified percentile - if p < 0 or p > 1: - return -1.0 - elif p < lowest_percentile or p > highest_percentile: - return -1.0 - else: - return float(values[floor(len(values) * p)]) - - -def _aggregate_steps(step_results: List[Dict[str, Any]], - measure_labels=None): - """Aggregates the steps for a given Test. - - The aggregation process extracts the measures from each step and calculates - the total time spent performing each step measure, including the - percentile metrics, if possible. - - The aggregation process also extracts the test measures by simply summing - up the respective step measures. - - A step measure is formatted as `{step_name}_{measure_name}`, for example, - {bulk_index}_{took} or {query_index}_{memory}. The braces are not included - in the actual key string. - - Percentile/Total step measures are give as - `{step_name}_{measure_name}_{percentile|total}`. - - Test measures are just step measure sums so they just given as - `test_{measure_name}`. - - Args: - steps: List of test steps to be aggregated. - measures: List of step metrics to account for. - - Returns: - A complete test result. - """ - if measure_labels is None: - measure_labels = ['took'] - test_measures = { - f'test_{measure_label}': 0 - for measure_label in measure_labels - } - step_measures: Dict[str, Any] = {} - - # iterate over all test steps - for step in step_results: - step_label = step['label'] - - step_measure_labels = list(step.keys()) - step_measure_labels.remove('label') - - # iterate over all measures in each test step - for measure_label in step_measure_labels: - - step_measure = step[measure_label] - step_measure_label = f'{step_label}_{measure_label}' - - # Add cumulative test measures from steps to test measures - if measure_label in measure_labels: - test_measures[f'test_{measure_label}'] += sum(step_measure) if \ - isinstance(step_measure, list) else step_measure - - if step_measure_label in step_measures: - _ = step_measures[step_measure_label].extend(step_measure) \ - if isinstance(step_measure, list) else \ - step_measures[step_measure_label].append(step_measure) - else: - step_measures[step_measure_label] = step_measure if \ - isinstance(step_measure, list) else [step_measure] - - aggregate = {**test_measures} - # calculate the totals and percentile statistics for each step measure - # where relevant - for step_measure_label, step_measure in step_measures.items(): - step_measure.sort() - - aggregate[step_measure_label + '_total'] = float(sum(step_measure)) - - p50 = _pxx(step_measure, 0.50) - if p50 != -1: - aggregate[step_measure_label + '_p50'] = p50 - p90 = _pxx(step_measure, 0.90) - if p90 != -1: - aggregate[step_measure_label + '_p90'] = p90 - p99 = _pxx(step_measure, 0.99) - if p99 != -1: - aggregate[step_measure_label + '_p99'] = p99 - - return aggregate - - -class Test: - """A base Test class, representing a collection of steps to profiled and - aggregated. - - Methods: - setup: Performs test setup. Usually for steps not intended to be - profiled. - run_steps: Runs the test steps, aggregating the results into the - `step_results` instance field. - cleanup: Perform test cleanup. Useful for clearing the state of a - persistent process like OpenSearch. Cleanup steps are executed after - each run. - execute: Runs steps, cleans up, and aggregates the test result. - """ - def __init__(self, test_config: TestConfig): - """Initializes the test state. - """ - self.test_config = test_config - self.setup_steps: List[Step] = test_config.setup - self.test_steps: List[Step] = test_config.steps - self.cleanup_steps: List[Step] = test_config.cleanup - - def setup(self): - _ = [step.execute() for step in self.setup_steps] - - def _run_steps(self): - step_results = [] - _ = [step_results.extend(step.execute()) for step in self.test_steps] - return step_results - - def _cleanup(self): - _ = [step.execute() for step in self.cleanup_steps] - - def execute(self): - results = self._run_steps() - self._cleanup() - return _aggregate_steps(results) diff --git a/benchmarks/perf-tool/requirements.in b/benchmarks/perf-tool/requirements.in deleted file mode 100644 index fd3555aab..000000000 --- a/benchmarks/perf-tool/requirements.in +++ /dev/null @@ -1,7 +0,0 @@ -Cerberus -opensearch-py -PyYAML -numpy -h5py -requests -psutil diff --git a/benchmarks/perf-tool/requirements.txt b/benchmarks/perf-tool/requirements.txt deleted file mode 100644 index 3b9946aad..000000000 --- a/benchmarks/perf-tool/requirements.txt +++ /dev/null @@ -1,39 +0,0 @@ -# -# This file is autogenerated by pip-compile with python 3.8 -# To update, run: -# -# pip-compile -# -cached-property==1.5.2 - # via h5py -cerberus==1.3.4 - # via -r requirements.in -certifi==2023.7.22 - # via - # opensearch-py - # requests -charset-normalizer==2.0.4 - # via requests -h5py==3.3.0 - # via -r requirements.in -idna==3.2 - # via requests -numpy==1.22.1 - # via - # -r requirements.in - # h5py -opensearch-py==1.0.0 - # via -r requirements.in -psutil==5.8.0 - # via -r requirements.in -pyyaml==5.4.1 - # via -r requirements.in -requests==2.31.0 - # via -r requirements.in -urllib3==1.26.6 - # via - # opensearch-py - # requests - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/benchmarks/perf-tool/sample-configs/faiss-sift-ivf/index-spec.json b/benchmarks/perf-tool/sample-configs/faiss-sift-ivf/index-spec.json deleted file mode 100644 index 5542ef387..000000000 --- a/benchmarks/perf-tool/sample-configs/faiss-sift-ivf/index-spec.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "settings": { - "index": { - "knn": true, - "number_of_shards": 3, - "number_of_replicas": 0 - } - }, - "mappings": { - "properties": { - "target_field": { - "type": "knn_vector", - "model_id": "test-model" - } - } - } -} diff --git a/benchmarks/perf-tool/sample-configs/faiss-sift-ivf/method-spec.json b/benchmarks/perf-tool/sample-configs/faiss-sift-ivf/method-spec.json deleted file mode 100644 index 1aa7f809f..000000000 --- a/benchmarks/perf-tool/sample-configs/faiss-sift-ivf/method-spec.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name":"ivf", - "engine":"faiss", - "parameters":{ - "nlist":16, - "nprobes": 4 - } -} diff --git a/benchmarks/perf-tool/sample-configs/faiss-sift-ivf/test.yml b/benchmarks/perf-tool/sample-configs/faiss-sift-ivf/test.yml deleted file mode 100644 index c8fb42ec4..000000000 --- a/benchmarks/perf-tool/sample-configs/faiss-sift-ivf/test.yml +++ /dev/null @@ -1,60 +0,0 @@ -endpoint: localhost -test_name: faiss_sift_ivf -test_id: "Test workflow for faiss ivf" -num_runs: 3 -show_runs: true -setup: - - name: delete_model - model_id: test-model - - name: delete_index - index_name: target_index - - name: delete_index - index_name: train_index - - name: create_index - index_name: train_index - index_spec: sample-configs/faiss-sift-ivf/train-index-spec.json - - name: ingest - index_name: train_index - field_name: train_field - bulk_size: 500 - dataset_format: hdf5 - dataset_path: ../dataset/sift-128-euclidean.hdf5 - - name: refresh_index - index_name: train_index -steps: - - name: train_model - model_id: test-model - train_index: train_index - train_field: train_field - dimension: 128 - method_spec: sample-configs/faiss-sift-ivf/method-spec.json - max_training_vector_count: 1000000000 - - name: create_index - index_name: target_index - index_spec: sample-configs/faiss-sift-ivf/index-spec.json - - name: ingest - index_name: target_index - field_name: target_field - bulk_size: 500 - dataset_format: hdf5 - dataset_path: ../dataset/sift-128-euclidean.hdf5 - - name: refresh_index - index_name: target_index - - name: force_merge - index_name: target_index - max_num_segments: 10 - - name: query - k: 100 - r: 1 - calculate_recall: true - index_name: target_index - field_name: target_field - dataset_format: hdf5 - dataset_path: ../dataset/sift-128-euclidean.hdf5 - neighbors_format: hdf5 - neighbors_path: ../dataset/sift-128-euclidean.hdf5 -cleanup: - - name: delete_model - model_id: test-model - - name: delete_index - index_name: target_index diff --git a/benchmarks/perf-tool/sample-configs/faiss-sift-ivf/train-index-spec.json b/benchmarks/perf-tool/sample-configs/faiss-sift-ivf/train-index-spec.json deleted file mode 100644 index 00a418e4f..000000000 --- a/benchmarks/perf-tool/sample-configs/faiss-sift-ivf/train-index-spec.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "settings": { - "index": { - "number_of_shards": 3, - "number_of_replicas": 0 - } - }, - "mappings": { - "properties": { - "train_field": { - "type": "knn_vector", - "dimension": 128 - } - } - } -} diff --git a/benchmarks/perf-tool/sample-configs/nmslib-sift-hnsw/index-spec.json b/benchmarks/perf-tool/sample-configs/nmslib-sift-hnsw/index-spec.json deleted file mode 100644 index 75abe7baa..000000000 --- a/benchmarks/perf-tool/sample-configs/nmslib-sift-hnsw/index-spec.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "settings": { - "index": { - "knn": true, - "knn.algo_param.ef_search": 512, - "refresh_interval": "10s", - "number_of_shards": 1, - "number_of_replicas": 0 - } - }, - "mappings": { - "properties": { - "target_field": { - "type": "knn_vector", - "dimension": 128, - "method": { - "name": "hnsw", - "space_type": "l2", - "engine": "nmslib", - "parameters": { - "ef_construction": 512, - "m": 16 - } - } - } - } - } -} diff --git a/benchmarks/perf-tool/sample-configs/nmslib-sift-hnsw/test.yml b/benchmarks/perf-tool/sample-configs/nmslib-sift-hnsw/test.yml deleted file mode 100644 index deea1ad47..000000000 --- a/benchmarks/perf-tool/sample-configs/nmslib-sift-hnsw/test.yml +++ /dev/null @@ -1,36 +0,0 @@ -endpoint: localhost -test_name: nmslib_sift_hnsw -test_id: "Test workflow for nmslib hnsw" -num_runs: 2 -show_runs: false -setup: - - name: delete_index - index_name: target_index -steps: - - name: create_index - index_name: target_index - index_spec: sample-configs/nmslib-sift-hnsw/index-spec.json - - name: ingest - index_name: target_index - field_name: target_field - bulk_size: 500 - dataset_format: hdf5 - dataset_path: ../dataset/sift-128-euclidean.hdf5 - - name: refresh_index - index_name: target_index - - name: force_merge - index_name: target_index - max_num_segments: 10 - - name: query - k: 100 - r: 1 - calculate_recall: true - index_name: target_index - field_name: target_field - dataset_format: hdf5 - dataset_path: ../dataset/sift-128-euclidean.hdf5 - neighbors_format: hdf5 - neighbors_path: ../dataset/sift-128-euclidean.hdf5 -cleanup: - - name: delete_index - index_name: target_index