Skip to content

Improve MA-BBOB evaluation by skipping zero-weight BBOB instances - #216

Open
shuheitnk wants to merge 1 commit into
IOHprofiler:masterfrom
shuheitnk:speedup-many-affine
Open

Improve MA-BBOB evaluation by skipping zero-weight BBOB instances#216
shuheitnk wants to merge 1 commit into
IOHprofiler:masterfrom
shuheitnk:speedup-many-affine

Conversation

@shuheitnk

Copy link
Copy Markdown

Suggestions: Improving Existing functionalities

Description in detail:
This PR suggests a small optimization to the MA-BBOB evaluation by skipping
BBOB instances with zero weights. The current implementation evaluates all 24
BBOB instances, including instances that do not contribute to the objective.
Skipping these evaluations avoids unnecessary computation while preserving the
MA-BBOB objective value.

The benchmark measures the time required to evaluate 20,000 solutions for each
of the MA-BBOB instances {1..100}, across dimensions {2, 5, 20, 40}. Runtime is
reduced from 211.26 s to 33.61 s (6.29× speedup).

Name of the function and file:
ioh::problem::bbob::ManyAffine::evaluate
include/ioh/problem/bbob/many_affine.hpp

Additional information:
No additional dependencies are required. The modified implementation was
verified against the original implementation by comparing the 20,000 objective
values of each instance bitwise, with no differences found across all
instances. The test suite passes (99/99).

The evaluation counters of skipped subproblems are not incremented.

Suggestions: Improving Existing functionalities

Description in detail:
This PR suggests a small optimization to the MA-BBOB evaluation by skipping
BBOB instances with zero weights. The current implementation evaluates all
24 BBOB instances, including instances that do not contribute to the
objective. Skipping these evaluations avoids unnecessary computation while
preserving the MA-BBOB objective value.

The benchmark measures the time to evaluate 20,000 solutions on each of the
MA-BBOB instances {1..100}, across the dimensions {2, 5, 20, 40}. Runtime is
reduced from 211.26 s to 33.61 s (6.29× speedup).

Name of the function and file:
ioh::problem::bbob::ManyAffine::evaluate
include/ioh/problem/bbob/many_affine.hpp

Additional information:
No additional dependencies are required. The optimized implementation was
verified against the original evaluation by comparing the 20,000 objective
values of each instance bitwise, with no differences found across all
instances. The test suite passes (99/99).

The evaluation counters of skipped subproblems are not incremented.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant