-
Notifications
You must be signed in to change notification settings - Fork 310
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
Do not support serializing BenchmarkRunners #2889
Conversation
This pull request was exported from Phabricator. Differential Revision: D64272347 |
Summary: Context: As of D64263610, serializing `BenchmarkProblem`s and `BenchmarkRunner`s is not needed, and in the future, we will make changes that are difficult to make work well with `SerializationMixin`. Therefore, this diff revokes support for serializating `BenchmarkProblem`s and `BenchmarkRunner`s. *But what if we want to serialize these?* IMO, we should use the benchmark problem registry to reconstruct these, which will be much more ergonomic. You might worry that it's expensive to reconstruct problems from scratch, but there was never any computational efficiency benefit from serialization rather than rebuilding from scratch, because the most expensive components (surrogates and data) could not be serialized anyway. This diff: * Strips the `BenchmarkRunner` from an `Experiment` before saving the experiment -- that probably should not have been saved anyway * Makes all `BenchmarkRunners` throw exceptions if their `serialize_int_args` or `deserialize_init_args` methods are used * Removes `SyntheticProblemRunner`'s serialization methods * Does the same for `SurrogateRunner` (which only had fake serialization anyway) Reviewed By: Balandat Differential Revision: D64272347
8acafc9
to
4fb12b9
Compare
This pull request was exported from Phabricator. Differential Revision: D64272347 |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #2889 +/- ##
=======================================
Coverage 95.78% 95.79%
=======================================
Files 504 504
Lines 49829 49799 -30
=======================================
- Hits 47730 47703 -27
+ Misses 2099 2096 -3 ☔ View full report in Codecov by Sentry. |
Summary: Context: As of D64263610, serializing `BenchmarkProblem`s and `BenchmarkRunner`s is not needed, and in the future, we will make changes that are difficult to make work well with `SerializationMixin`. Therefore, this diff revokes support for serializating `BenchmarkProblem`s and `BenchmarkRunner`s. *But what if we want to serialize these?* IMO, we should use the benchmark problem registry to reconstruct these, which will be much more ergonomic. You might worry that it's expensive to reconstruct problems from scratch, but there was never any computational efficiency benefit from serialization rather than rebuilding from scratch, because the most expensive components (surrogates and data) could not be serialized anyway. This diff: * Strips the `BenchmarkRunner` from an `Experiment` before saving the experiment -- that probably should not have been saved anyway * Makes all `BenchmarkRunners` throw exceptions if their `serialize_int_args` or `deserialize_init_args` methods are used * Removes `SyntheticProblemRunner`'s serialization methods * Does the same for `SurrogateRunner` (which only had fake serialization anyway) Reviewed By: Balandat Differential Revision: D64272347
4fb12b9
to
44631a4
Compare
This pull request was exported from Phabricator. Differential Revision: D64272347 |
Summary: Context: As of D64263610, serializing `BenchmarkProblem`s and `BenchmarkRunner`s is not needed, and in the future, we will make changes that are difficult to make work well with `SerializationMixin`. Therefore, this diff revokes support for serializating `BenchmarkProblem`s and `BenchmarkRunner`s. *But what if we want to serialize these?* IMO, we should use the benchmark problem registry to reconstruct these, which will be much more ergonomic. You might worry that it's expensive to reconstruct problems from scratch, but there was never any computational efficiency benefit from serialization rather than rebuilding from scratch, because the most expensive components (surrogates and data) could not be serialized anyway. This diff: * Strips the `BenchmarkRunner` from an `Experiment` before saving the experiment -- that probably should not have been saved anyway * Makes all `BenchmarkRunners` throw exceptions if their `serialize_int_args` or `deserialize_init_args` methods are used * Removes `SyntheticProblemRunner`'s serialization methods * Does the same for `SurrogateRunner` (which only had fake serialization anyway) Reviewed By: Balandat Differential Revision: D64272347
44631a4
to
2c455e3
Compare
This pull request was exported from Phabricator. Differential Revision: D64272347 |
Summary: Context: As of D64263610, serializing `BenchmarkProblem`s and `BenchmarkRunner`s is not needed, and in the future, we will make changes that are difficult to make work well with `SerializationMixin`. Therefore, this diff revokes support for serializating `BenchmarkProblem`s and `BenchmarkRunner`s. *But what if we want to serialize these?* IMO, we should use the benchmark problem registry to reconstruct these, which will be much more ergonomic. You might worry that it's expensive to reconstruct problems from scratch, but there was never any computational efficiency benefit from serialization rather than rebuilding from scratch, because the most expensive components (surrogates and data) could not be serialized anyway. This diff: * Strips the `BenchmarkRunner` from an `Experiment` before saving the experiment -- that probably should not have been saved anyway * Makes all `BenchmarkRunners` throw exceptions if their `serialize_int_args` or `deserialize_init_args` methods are used * Removes `SyntheticProblemRunner`'s serialization methods * Does the same for `SurrogateRunner` (which only had fake serialization anyway) Reviewed By: Balandat Differential Revision: D64272347
2c455e3
to
a1fcc6a
Compare
This pull request was exported from Phabricator. Differential Revision: D64272347 |
Summary: Context: As of D64263610, serializing `BenchmarkProblem`s and `BenchmarkRunner`s is not needed, and in the future, we will make changes that are difficult to make work well with `SerializationMixin`. Therefore, this diff revokes support for serializating `BenchmarkProblem`s and `BenchmarkRunner`s. *But what if we want to serialize these?* IMO, we should use the benchmark problem registry to reconstruct these, which will be much more ergonomic. You might worry that it's expensive to reconstruct problems from scratch, but there was never any computational efficiency benefit from serialization rather than rebuilding from scratch, because the most expensive components (surrogates and data) could not be serialized anyway. This diff: * Strips the `BenchmarkRunner` from an `Experiment` before saving the experiment -- that probably should not have been saved anyway * Makes all `BenchmarkRunners` throw exceptions if their `serialize_int_args` or `deserialize_init_args` methods are used * Removes `SyntheticProblemRunner`'s serialization methods * Does the same for `SurrogateRunner` (which only had fake serialization anyway) Reviewed By: Balandat Differential Revision: D64272347
Summary: Context: As of D64263610, serializing `BenchmarkProblem`s and `BenchmarkRunner`s is not needed, and in the future, we will make changes that are difficult to make work well with `SerializationMixin`. Therefore, this diff revokes support for serializating `BenchmarkProblem`s and `BenchmarkRunner`s. *But what if we want to serialize these?* IMO, we should use the benchmark problem registry to reconstruct these, which will be much more ergonomic. You might worry that it's expensive to reconstruct problems from scratch, but there was never any computational efficiency benefit from serialization rather than rebuilding from scratch, because the most expensive components (surrogates and data) could not be serialized anyway. This diff: * Strips the `BenchmarkRunner` from an `Experiment` before saving the experiment -- that probably should not have been saved anyway * Makes all `BenchmarkRunners` throw exceptions if their `serialize_int_args` or `deserialize_init_args` methods are used * Removes `SyntheticProblemRunner`'s serialization methods * Does the same for `SurrogateRunner` (which only had fake serialization anyway) Reviewed By: Balandat Differential Revision: D64272347
Summary: Context: As of D64263610, serializing `BenchmarkProblem`s and `BenchmarkRunner`s is not needed, and in the future, we will make changes that are difficult to make work well with `SerializationMixin`. Therefore, this diff revokes support for serializating `BenchmarkProblem`s and `BenchmarkRunner`s. *But what if we want to serialize these?* IMO, we should use the benchmark problem registry to reconstruct these, which will be much more ergonomic. You might worry that it's expensive to reconstruct problems from scratch, but there was never any computational efficiency benefit from serialization rather than rebuilding from scratch, because the most expensive components (surrogates and data) could not be serialized anyway. This diff: * Strips the `BenchmarkRunner` from an `Experiment` before saving the experiment -- that probably should not have been saved anyway * Makes all `BenchmarkRunners` throw exceptions if their `serialize_int_args` or `deserialize_init_args` methods are used * Removes `SyntheticProblemRunner`'s serialization methods * Does the same for `SurrogateRunner` (which only had fake serialization anyway) Reviewed By: Balandat Differential Revision: D64272347
a1fcc6a
to
2aac283
Compare
This pull request was exported from Phabricator. Differential Revision: D64272347 |
Summary: Context: As of D64263610, serializing `BenchmarkProblem`s and `BenchmarkRunner`s is not needed, and in the future, we will make changes that are difficult to make work well with `SerializationMixin`. Therefore, this diff revokes support for serializating `BenchmarkProblem`s and `BenchmarkRunner`s. *But what if we want to serialize these?* IMO, we should use the benchmark problem registry to reconstruct these, which will be much more ergonomic. You might worry that it's expensive to reconstruct problems from scratch, but there was never any computational efficiency benefit from serialization rather than rebuilding from scratch, because the most expensive components (surrogates and data) could not be serialized anyway. This diff: * Strips the `BenchmarkRunner` from an `Experiment` before saving the experiment -- that probably should not have been saved anyway * Makes all `BenchmarkRunners` throw exceptions if their `serialize_int_args` or `deserialize_init_args` methods are used * Removes `SyntheticProblemRunner`'s serialization methods * Does the same for `SurrogateRunner` (which only had fake serialization anyway) Reviewed By: Balandat Differential Revision: D64272347
Summary: Context: As of D64263610, serializing `BenchmarkProblem`s and `BenchmarkRunner`s is not needed, and in the future, we will make changes that are difficult to make work well with `SerializationMixin`. Therefore, this diff revokes support for serializating `BenchmarkProblem`s and `BenchmarkRunner`s. *But what if we want to serialize these?* IMO, we should use the benchmark problem registry to reconstruct these, which will be much more ergonomic. You might worry that it's expensive to reconstruct problems from scratch, but there was never any computational efficiency benefit from serialization rather than rebuilding from scratch, because the most expensive components (surrogates and data) could not be serialized anyway. This diff: * Strips the `BenchmarkRunner` from an `Experiment` before saving the experiment -- that probably should not have been saved anyway * Makes all `BenchmarkRunners` throw exceptions if their `serialize_int_args` or `deserialize_init_args` methods are used * Removes `SyntheticProblemRunner`'s serialization methods * Does the same for `SurrogateRunner` (which only had fake serialization anyway) Reviewed By: Balandat Differential Revision: D64272347
This pull request has been merged in 37e6f54. |
Summary:
Context: As of D64263610, serializing
BenchmarkProblem
s andBenchmarkRunner
s is not needed, and in the future, we will make changes that are difficult to make work well withSerializationMixin
. Therefore, this diff revokes support for serializatingBenchmarkProblem
s andBenchmarkRunner
s.But what if we want to serialize these? IMO, we should use the benchmark problem registry to reconstruct these, which will be much more ergonomic. You might worry that it's expensive to reconstruct problems from scratch, but there was never any computational efficiency benefit from serialization rather than rebuilding from scratch, because the most expensive components (surrogates and data) could not be serialized anyway.
This diff:
BenchmarkRunner
from anExperiment
before saving the experiment -- that probably should not have been saved anywayBenchmarkRunners
throw exceptions if theirserialize_int_args
ordeserialize_init_args
methods are usedSyntheticProblemRunner
's serialization methodsSurrogateRunner
(which only had fake serialization anyway)Reviewed By: Balandat
Differential Revision: D64272347