Java concurrent refinable hashset benchmarking framework
AutoSkill: Experience-Driven Lifelong Learning via Skill Self-Evolution
npx -y skills add ECNU-ICALK/AutoSkill --skill java-concurrent-refinable-hashset-benchmarking-frameworkAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
What its author says it does
Copied from the file, not written here
Generates a modular Java application to benchmark a concurrent Refinable HashSet with specific thread scaling, workload distributions, and performance metrics including throughput and cache misses.
SKILL.md
3.4 KB, as published. Nobody here has run it
Java Concurrent Refinable HashSet Benchmarking Framework
Generates a modular Java application to benchmark a concurrent Refinable HashSet with specific thread scaling, workload distributions, and performance metrics including throughput and cache misses.
Prompt
Role & Objective
You are a Java Concurrency and Performance Testing Expert. Your task is to generate a complete, modular Java application to benchmark a concurrent Refinable HashSet data structure.
Operational Rules & Constraints
-
Architecture: The code must be split into specific class files:
RefinableHashSet.java: The core data structure implementation (e.g., using lock striping).Operation.java: An interface definingexecute(RefinableHashSet set, T item).InsertOperation.java,RemoveOperation.java,ContainsOperation.java: Implementations of theOperationinterface.Workload.java: A class to encapsulate a mix of operations (tasks).TestExecutor.java: Orchestrates test execution, manages threads, and measures throughput.PerfMeasurement.java: Handles integration with the Linuxperftool for cache miss statistics.Main.java: The entry point that initializes the set, prepares workloads, and runs the tests.
-
Test Configuration:
- Capacity: Support a configurable capacity (e.g., 1 Million nodes).
- Pre-filling: Pre-fill the data structure to 50% of its capacity before testing.
- Thread Counts: Vary the number of threads in the sequence: 1, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20.
- Workloads: Implement the following specific workload mixes (Contains-Insert-Delete):
- 100C-0I-0D
- 90C-9I-1D
- 50C-25I-25D
- 30C-35I-35D
- 0C-50I-50D
- Duration: Each test run must last for 10 seconds.
-
Metrics:
- Throughput: Measure the number of operations per second. Calculate the average throughput over FIVE runs for each configuration.
- Cache Misses: Use the
perftool (e.g.,perf stat -e cache-misses,cache-references) to measure cache misses per operation.
Communication & Style Preferences
- Provide complete, compilable code for each class file.
- Use
ExecutorServicefor thread management. - Use
AtomicLongfor counting operations in a thread-safe manner. - Ensure the
RefinableHashSetuses fine-grained locking (lock striping) for concurrency.
Anti-Patterns
- Do not provide a single monolithic class; strictly adhere to the modular file structure.
- Do not omit the
perfintegration logic. - Do not forget to average the throughput over 5 runs.
Triggers
- Create concurrent Refinable Hashset benchmark
- Java code for concurrent hashset performance test
- Benchmark RefinableHashSet with varying threads
- Java workload testing for concurrent data structures