Skip to content
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

[tune](deps): Bump nevergrad from 0.4.2.post5 to 0.4.3.post2 in /python/requirements #11

Conversation

dependabot[bot]
Copy link

@dependabot dependabot bot commented on behalf of github Apr 10, 2021

Bumps nevergrad from 0.4.2.post5 to 0.4.3.post2.

Release notes

Sourced from nevergrad's releases.

0.4.3

This version provides a few fixes and the new multi-objective API of optimizers (you can now provide a list/array of float to tell directly). This allows fore more efficient multi-objective optimization for some optimizers (DE, NGOpt). Future work will continue to improve multi-objective capacities and aim at improving constraints management.

See CHANGELOG for details.

Changelog

Sourced from nevergrad's changelog.

Changelog

master

Breaking changes

  • copy() method of a Parameter does not change the parameters's random state anymore (it used to reset it to None #1048
  • MultiobjectiveFunction does not exist anymore #1034.
  • Choice and TransitionChoice have some of their API changed for uniformization. In particular, indices is now an ng.p.Array (and not an np.ndarray) which contains the selected indices (or index) of the Choice. The sampling is performed by specific "layers" that are applied to Data parameters #1065.
  • Parameter.set_standardized_space does not take a deterministic parameter anymore #1068. This is replaced by the more general with ng.p.helpers.determistic_sampling(parameter) context. One-shot algorithms are also updated to choose options of Choice parameters deterministically, since it is a simpler behavior to expect compared to sampling the standardized space than sampling the option stochastically from there
  • RandomSearch now defaults to sample values using the parameter.sample() instead of a Gaussian #1068. The only difference comes with bounded variables since in this case parameter.sample() samples uniformly (unless otherwise specified). The previous behavior can be obtained with RandomSearchMaker(sampler="gaussian").
  • PSO API has been slightly changed #1073
  • Parameter instances descriptor attribute is deprecated, in favor of a combinaison of an analysis function (ng.p.helpers.analyze) returning information about the parameter (eg: whether continuous, deterministic etc...) and a new function attribute which can be used to provide information about the function (eg: whether deterministic etc) #1076.
  • Half the budget alloted to solve cheap constrained is now used by a sub-optimizer #1047. More changes of constraint management will land in the near future.

Important changes

  • Parameter classes are undergoing heavy changes, please open an issue if you encounter any problem. The midterm aim is to allow for simpler constraint management.
  • Parameter have been updated have undergone heavy changes to ease the handling of their tree structure ( #1029 #1036 #1038 #1043 #1044 )
  • Parameter classes have now a layer structure #1045 which simplifies changing their behavior. In future PRs this system will take charge of bounds, other constraints, sampling etc.
  • The layer structures allows disentangling bounds and log-distribution. This goal has been reached with #1053 but may create some instabilities. In particular, the representation (__repr__) of Array has changed, and their bounds attribute is no longer reliable for now. This change will eventually lead to a new syntax for settings bounds and distribution, but it's not ready yet.
  • DE initial sampling as been updated to take bounds into accounts #1058
  • Array can now take lower and upper bounds as initialization arguments. The array is initialized at its average if not init is provided and both bounds are provided. In this case, sampling will be uniformm between these bounds.

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

@dependabot @github
Copy link
Author

dependabot bot commented on behalf of github Apr 24, 2021

Superseded by #13.

@dependabot dependabot bot closed this Apr 24, 2021
@dependabot dependabot bot deleted the dependabot/pip/python/requirements/nevergrad-0.4.3.post2 branch April 24, 2021 07:02
edoakes pushed a commit that referenced this pull request Aug 5, 2022
We encountered SIGSEGV when running Python test `python/ray/tests/test_failure_2.py::test_list_named_actors_timeout`. The stack is:

```
#0  0x00007fffed30f393 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&) ()
   from /lib64/libstdc++.so.6
#1  0x00007fffee707649 in ray::RayLog::GetLoggerName() () from /home/admin/dev/Arc/merge/ray/python/ray/_raylet.so
#2  0x00007fffee70aa90 in ray::SpdLogMessage::Flush() () from /home/admin/dev/Arc/merge/ray/python/ray/_raylet.so
#3  0x00007fffee70af28 in ray::RayLog::~RayLog() () from /home/admin/dev/Arc/merge/ray/python/ray/_raylet.so
#4  0x00007fffee2b570d in ray::asio::testing::(anonymous namespace)::DelayManager::Init() [clone .constprop.0] ()
   from /home/admin/dev/Arc/merge/ray/python/ray/_raylet.so
#5  0x00007fffedd0d95a in _GLOBAL__sub_I_asio_chaos.cc () from /home/admin/dev/Arc/merge/ray/python/ray/_raylet.so
#6  0x00007ffff7fe282a in call_init.part () from /lib64/ld-linux-x86-64.so.2
#7  0x00007ffff7fe2931 in _dl_init () from /lib64/ld-linux-x86-64.so.2
#8  0x00007ffff7fe674c in dl_open_worker () from /lib64/ld-linux-x86-64.so.2
#9  0x00007ffff7b82e79 in _dl_catch_exception () from /lib64/libc.so.6
#10 0x00007ffff7fe5ffe in _dl_open () from /lib64/ld-linux-x86-64.so.2
#11 0x00007ffff7d5f39c in dlopen_doit () from /lib64/libdl.so.2
#12 0x00007ffff7b82e79 in _dl_catch_exception () from /lib64/libc.so.6
#13 0x00007ffff7b82f13 in _dl_catch_error () from /lib64/libc.so.6
#14 0x00007ffff7d5fb09 in _dlerror_run () from /lib64/libdl.so.2
#15 0x00007ffff7d5f42a in dlopen@@GLIBC_2.2.5 () from /lib64/libdl.so.2
#16 0x00007fffef04d330 in py_dl_open (self=<optimized out>, args=<optimized out>)
    at /tmp/python-build.20220507135524.257789/Python-3.7.11/Modules/_ctypes/callproc.c:1369
```

The root cause is that when loading `_raylet.so`, `static DelayManager _delay_manager` is initialized and `RAY_LOG(ERROR) << "RAY_testing_asio_delay_us is set to " << delay_env;` is executed. However, the static variables declared in `logging.cc` are not initialized yet (in this case, `std::string RayLog::logger_name_ = "ray_log_sink"`).

It's better not to rely on the initialization order of static variables in different compilation units because it's not guaranteed. I propose to change all `RAY_LOG`s to `std::cerr` in `DelayManager::Init()`.

The crash happens in Ant's internal codebase. Not sure why this test case passes in the community version though.

BTW, I've tried different approaches:

1. Using a static local variable in `get_delay_us` and remove the global variable. This doesn't work because `init()` needs to access the variable as well.
2. Defining the global variable as type `std::unique_ptr<DelayManager>` and initialize it in `get_delay_us`. This works but it requires a lock to be thread-safe.
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.

0 participants