Skip to content

Add a new concurrent hashmap benchmark to AI benchmark suite in DCPerf. #147

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: v2-beta
Choose a base branch
from

Conversation

Kaiweitu
Copy link

Summary:
This update introduces a new benchmark type, CHM, to the AI benchmark suite. The CHM benchmark simulates the usage pattern of a concurrent hash map in machine learning workloads, where certain key-value pairs are hashed in an in-memory key-value store for retrieval.

HOW TO RUN THE NEW BENCHMARK

To install and run the rebatch benchmark, use the following commands:

./benchpress_cli.py -b ai install chm_a // Install the chm workload representing workload A
./benchpress_cli.py -b ai install chm_b // Install the chm workload representing workload B

./benchpress_cli.py -b ai run chm_a // Run the chm workload representing workload A
./benchpress_cli.py -b ai run chm_b // Run the chm workload representing workload B

FILES ADDED AND MODIFIED

- benchpress
  - configs
    - benchmarks_ai.yml // Added the new chm benchmark.
    - jobs_ai.yml // Added two new chm benchmark jobs.
  - plugins
    - parsers.py
      - chm.py // Added a new parser for the chm benchmark.
      - __init__.py // Registered the new parser.
- packages
  - chm
    - install_chm.sh // Added a new installation script for chm benchmark.
    - cleanup_chm.sh // Added a new cleanup script for chm benchmark.
    - ChmBenchmark.cpp // Added a benchmark simuates the concurrent hash map workload.
    - CMakeLists.txt // CMake file to compile the benchmark.
    - ConcurrentHashMap.h // A sharded concurrent hash map implementation
    - model_a.dist // Key distribution file for workload A.
    - model_b.dist // Key distribution file for workload B.
- BUCK // Updated to include the new benchmark components.
...

Differential Revision: D77214563

@facebook-github-bot facebook-github-bot added CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported labels Jun 24, 2025
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D77214563

Kaiweitu pushed a commit to Kaiweitu/DCPerf that referenced this pull request Jun 24, 2025
…f. (facebookresearch#147)

Summary:

This update introduces a new benchmark type, CHM, to the AI benchmark suite. The CHM benchmark simulates the usage pattern of a concurrent hash map in machine learning workloads, where certain key-value pairs are hashed in an in-memory key-value store for retrieval.

#### HOW TO RUN THE NEW BENCHMARK
To install and run the rebatch benchmark, use the following commands:

```
./benchpress_cli.py -b ai install chm_a // Install the chm workload representing workload A
./benchpress_cli.py -b ai install chm_b // Install the chm workload representing workload B

./benchpress_cli.py -b ai run chm_a // Run the chm workload representing workload A
./benchpress_cli.py -b ai run chm_b // Run the chm workload representing workload B
```

#### FILES ADDED AND MODIFIED
```
- benchpress
  - configs
    - benchmarks_ai.yml // Added the new chm benchmark.
    - jobs_ai.yml // Added two new chm benchmark jobs.
  - plugins
    - parsers.py
      - chm.py // Added a new parser for the chm benchmark.
      - __init__.py // Registered the new parser.
- packages
  - chm
    - install_chm.sh // Added a new installation script for chm benchmark.
    - cleanup_chm.sh // Added a new cleanup script for chm benchmark.
    - ChmBenchmark.cpp // Added a benchmark simuates the concurrent hash map workload.
    - CMakeLists.txt // CMake file to compile the benchmark.
    - ConcurrentHashMap.h // A sharded concurrent hash map implementation
    - model_a.dist // Key distribution file for workload A.
    - model_b.dist // Key distribution file for workload B.
- BUCK // Updated to include the new benchmark components.
...
```

Differential Revision: D77214563
@Kaiweitu Kaiweitu force-pushed the export-D77214563-to-v2-beta branch from ea9ae5d to 82c9cde Compare June 24, 2025 23:29
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D77214563

Kaiweitu pushed a commit to Kaiweitu/DCPerf that referenced this pull request Jun 24, 2025
…f. (facebookresearch#147)

Summary:
Pull Request resolved: facebookresearch#147

This update introduces a new benchmark type, CHM, to the AI benchmark suite. The CHM benchmark simulates the usage pattern of a concurrent hash map in machine learning workloads, where certain key-value pairs are hashed in an in-memory key-value store for retrieval.

#### HOW TO RUN THE NEW BENCHMARK
To install and run the rebatch benchmark, use the following commands:

```
./benchpress_cli.py -b ai install chm_a // Install the chm workload representing workload A
./benchpress_cli.py -b ai install chm_b // Install the chm workload representing workload B

./benchpress_cli.py -b ai run chm_a // Run the chm workload representing workload A
./benchpress_cli.py -b ai run chm_b // Run the chm workload representing workload B
```

#### FILES ADDED AND MODIFIED
```
- benchpress
  - configs
    - benchmarks_ai.yml // Added the new chm benchmark.
    - jobs_ai.yml // Added two new chm benchmark jobs.
  - plugins
    - parsers.py
      - chm.py // Added a new parser for the chm benchmark.
      - __init__.py // Registered the new parser.
- packages
  - chm
    - install_chm.sh // Added a new installation script for chm benchmark.
    - cleanup_chm.sh // Added a new cleanup script for chm benchmark.
    - ChmBenchmark.cpp // Added a benchmark simuates the concurrent hash map workload.
    - CMakeLists.txt // CMake file to compile the benchmark.
    - ConcurrentHashMap.h // A sharded concurrent hash map implementation
    - model_a.dist // Key distribution file for workload A.
    - model_b.dist // Key distribution file for workload B.
- BUCK // Updated to include the new benchmark components.
...
```

Differential Revision: D77214563
@Kaiweitu Kaiweitu force-pushed the export-D77214563-to-v2-beta branch from 82c9cde to a43c311 Compare June 24, 2025 23:32
Kaiweitu pushed a commit to Kaiweitu/DCPerf that referenced this pull request Jun 25, 2025
…f. (facebookresearch#147)

Summary:

This update introduces a new benchmark type, CHM, to the AI benchmark suite. The CHM benchmark simulates the usage pattern of a concurrent hash map in machine learning workloads, where certain key-value pairs are hashed in an in-memory key-value store for retrieval.

#### HOW TO RUN THE NEW BENCHMARK
To install and run the rebatch benchmark, use the following commands:

```
./benchpress_cli.py -b ai install chm_a // Install the chm workload representing workload A
./benchpress_cli.py -b ai install chm_b // Install the chm workload representing workload B

./benchpress_cli.py -b ai run chm_a // Run the chm workload representing workload A
./benchpress_cli.py -b ai run chm_b // Run the chm workload representing workload B
```

#### FILES ADDED AND MODIFIED
```
- benchpress
  - configs
    - benchmarks_ai.yml // Added the new chm benchmark.
    - jobs_ai.yml // Added two new chm benchmark jobs.
  - plugins
    - parsers.py
      - chm.py // Added a new parser for the chm benchmark.
      - __init__.py // Registered the new parser.
- packages
  - chm
    - install_chm.sh // Added a new installation script for chm benchmark.
    - cleanup_chm.sh // Added a new cleanup script for chm benchmark.
    - ChmBenchmark.cpp // Added a benchmark simuates the concurrent hash map workload.
    - CMakeLists.txt // CMake file to compile the benchmark.
    - ConcurrentHashMap.h // A sharded concurrent hash map implementation
    - model_a.dist // Key distribution file for workload A.
    - model_b.dist // Key distribution file for workload B.
- BUCK // Updated to include the new benchmark components.
...
```

Differential Revision: D77214563
@Kaiweitu Kaiweitu force-pushed the export-D77214563-to-v2-beta branch from a43c311 to 7f830dc Compare June 25, 2025 10:33
…f. (facebookresearch#147)

Summary:
Pull Request resolved: facebookresearch#147

This update introduces a new benchmark type, CHM, to the AI benchmark suite. The CHM benchmark simulates the usage pattern of a concurrent hash map in machine learning workloads, where certain key-value pairs are hashed in an in-memory key-value store for retrieval.

#### HOW TO RUN THE NEW BENCHMARK
To install and run the rebatch benchmark, use the following commands:

```
./benchpress_cli.py -b ai install chm_a // Install the chm workload representing workload A
./benchpress_cli.py -b ai install chm_b // Install the chm workload representing workload B

./benchpress_cli.py -b ai run chm_a // Run the chm workload representing workload A
./benchpress_cli.py -b ai run chm_b // Run the chm workload representing workload B
```

#### FILES ADDED AND MODIFIED
```
- benchpress
  - configs
    - benchmarks_ai.yml // Added the new chm benchmark.
    - jobs_ai.yml // Added two new chm benchmark jobs.
  - plugins
    - parsers.py
      - chm.py // Added a new parser for the chm benchmark.
      - __init__.py // Registered the new parser.
- packages
  - chm
    - install_chm.sh // Added a new installation script for chm benchmark.
    - cleanup_chm.sh // Added a new cleanup script for chm benchmark.
    - ChmBenchmark.cpp // Added a benchmark simuates the concurrent hash map workload.
    - CMakeLists.txt // CMake file to compile the benchmark.
    - ConcurrentHashMap.h // A sharded concurrent hash map implementation
    - model_a.dist // Key distribution file for workload A.
    - model_b.dist // Key distribution file for workload B.
- BUCK // Updated to include the new benchmark components.
...
```

Differential Revision: D77214563
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D77214563

@Kaiweitu Kaiweitu force-pushed the export-D77214563-to-v2-beta branch from 7f830dc to 3042723 Compare June 25, 2025 10:37
facebook-github-bot pushed a commit that referenced this pull request Jun 25, 2025
…f. (#147)

Summary:
Pull Request resolved: #147

This update introduces a new benchmark type, CHM, to the AI benchmark suite. The CHM benchmark simulates the usage pattern of a concurrent hash map in the critical machine learning workloads, where certain key-value pairs are cached in an in-memory key-value concurrent hashmap for retrieval.

#### HOW TO RUN THE NEW BENCHMARK
To install and run the rebatch benchmark, use the following commands:

```
./benchpress_cli.py -b ai install chm_a // Install the chm workload representing workload A
./benchpress_cli.py -b ai install chm_b // Install the chm workload representing workload B

./benchpress_cli.py -b ai run chm_a // Run the chm workload representing workload A
./benchpress_cli.py -b ai run chm_b // Run the chm workload representing workload B
```

#### FILES ADDED AND MODIFIED
```
- benchpress
  - configs
    - benchmarks_ai.yml // Added the new chm benchmark.
    - jobs_ai.yml // Added two new chm benchmark jobs.
  - plugins
    - parsers.py
      - chm.py // Added a new parser for the chm benchmark.
      - __init__.py // Registered the new parser.
- packages
  - chm
    - install_chm.sh // Added a new installation script for chm benchmark.
    - cleanup_chm.sh // Added a new cleanup script for chm benchmark.
    - ChmBenchmark.cpp // Added a benchmark simuates the concurrent hash map workload.
    - CMakeLists.txt // CMake file to compile the benchmark.
    - ConcurrentHashMap.h // A sharded concurrent hash map implementation
    - model_a.dist // Key distribution file for workload A.
    - model_b.dist // Key distribution file for workload B.
- BUCK // Updated to include the new benchmark components.
...
```

Reviewed By: excelle08

Differential Revision: D77214563

fbshipit-source-id: 569b9b623bd3450920e99b004094bab00fd8d57d
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants