openai / retro-contest

OpenAI Retro Contest
https://contest.openai.com/
MIT License
65 stars 50 forks source link

Hosting my own remote-env (with roms) on AWS #27

Open ryanpeach opened 6 years ago

ryanpeach commented 6 years ago

Hi, this is rather complicated I know, but there's no doccumentation on this and I'm a bit lost.

I want to run the remote-env and simple-agent docker containers on AWS Fargate, with them able to communicate with one another. That is the high-level goal.

So far I have built each, and put them both on ECS. However, I dont understand how to run with custom remote-env's.

I am trying this:

sudo retro-contest docker SonicTheHedgehog-Genesis GreenHillZone.Act1 --agent <my agent docker tag> --remote_env <my env docker tag>  --results-dir results --no-nv

And getting nothing.

None of the --help commands are very informative.

Thanks for your help.

ryanpeach commented 6 years ago

Oh hey, I got it working by doing this:

sudo retro-contest run SonicTheHedgehog-Genesis GreenHillZone.Act1 --agent <my agent> --remote-env <my env> --results-dir results --no-nv

Now question is, how does it work? Do I need to make a third "host" docker container to run this script? What are the ports they communicate over? Who is managing what.

I'd love documentation and a generalization for remote environments like gym_remote, it's a pain running them locally when they are relatively large. Maybe as a wrapper to an environment? (noted, that is already in this package yes, but there is no documentation)

endrift commented 6 years ago

They communicate over Unix sockets, not IP sockets, on a shared volume. So long as you map the same volume into both at /root/compo/tmp they should be able to communicate. I don't know if ECS lets you do that though.

ryanpeach commented 6 years ago

I'm willing to do a rewrite to get this working. Do you think itd be easy enough to swap unix sockets with TCP sockets in gym_remote?

Get Outlook for Androidhttps://aka.ms/ghei36


From: endrift notifications@github.com Sent: Friday, September 14, 2018 11:39:01 AM To: openai/retro-contest Cc: Ryan Peach; Author Subject: Re: [openai/retro-contest] Hosting my own remote-env (with roms) on AWS (#27)

They communicate over Unix sockets, not IP sockets, on a shared volume. So long as you map the same volume into both at /root/compo/tmp they should be able to communicate. I don't know if ECS lets you do that though.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/openai/retro-contest/issues/27#issuecomment-421398240, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AOJryZluNlKakT_vpolz7YTqMZJ3kwQmks5ua82VgaJpZM4Wogb5.

endrift commented 6 years ago

Probably not. The Docker containers intentionally have networking disabled, for security reasons.