2024-07-31 LW/JW running evaluator on NRP meeting note

Participants

  • @Lily Wang

  • @Jeffrey Wagner

Discussion topics

Item

Notes

Item

Notes

Give LW Dockerhub creds

LW needs to make an account at hub.docker.com (ideally using openff gmail)

  • LW – I already have one

JW needs to add LW to https://app.docker.com/admin/orgs/openforcefield/members

  • JW – Invite sent

 

 

Run evaluator client and server locally

  • LW – MWE SFEs example (py 3.9, evaluator 0.3.11)

  • LW – started trying to wrap head around parsl

 

JW attempt:

 

mamba create -n evaluator openff-evaluator

Running natively on mac failed

Trying to run in docker:

using instructions from here: https://github.com/openforcefield/openff-qcsubmit/issues/264

(emulating 64 with the --platform bit)

docker run -it --platform linux/amd64 mambaorg/micromamba

Then outside container:

docker cp test.py <container_hash>:/tmp docker cp tutorial02.py <container_hash>:/tmp docker cp ~/oe_license.txt <container_hash>:/tmp docker cp ~/filtered_data_set.json <container_hash>:/tmp

Then in container:

 

micromamba create -n evaluator -c conda-forge openff-evaluator -c openeye openeye-toolkits

 

filtered_data_set.json:

 

 

 

 

 

Run evaluator w/ server in separate process

server.py:

from openff.evaluator.backends.dask import DaskLocalCluster from openff.evaluator.server import EvaluatorServer with DaskLocalCluster() as calculation_backend: evaluator_server = EvaluatorServer(calculation_backend) evaluator_server.start()

 

client.py

Run evaluator client locally and server in docker

docker run -it -p 8000:8000 --platform linux/amd64 mambaorg/micromamba

 

Getting a real connection on port 8000 (if I change the client port to 8001 I get “connection refused”) but it’s failing at the assert exception is None line with

I get this error whether or not the server is running

  • LW – on port 8000, I get `ConnectionResetError: [Errno 54] Connection reset by peer`. (8001 also gets me “connection refused”)

    • LW – explicitly requesting “localhost” as the server address gets me the NoneType error

  • LW – this is because EvaluatorServer hardcodes where it’s listening from, i.e. “localhost”. This server script works for me if I change it to listen to all IP addresses:

  • LW – also, I was experimenting with different ways to run so I made a very simple image:

    • This can be built with docker build --platform linux/amd64 --tag evaluator-openeye-v0 .

    • And run with docker run -it -p 8000:8000 --platform linux/amd64 evaluator-openeye-v0

  • To dos:

    • Figure out if using a “0.0.0.0” address on Evaluator could be unsafe? It allows listening for connections on all interfaces. Does ChatGPT4 know?

    • Is there another way to fix this?

 

 

Run evaluator worker on NRP, installing software in base container

 

Build evaluator worker docker image and deploy on DockerHub

 

Action items

Decisions