Open jamieparkinson opened 6 years ago
Hi Jamie! Thanks for your question.
To evaluate the submissions we won't be able to setup specialized networked environments for different submissions. We do want a script run_submission.sh
that showcase the submission, requiring only SimulaQron and its dependencies (possibly also other packages if this is documented). However, this does not restrict your submission from going further! For example if you want to write applications that run on multiple computers, that is great :) But run_submission.sh
should then showcase this with each computers process running locally on one computer. To be clear run_submission.sh
does not need to showcase your full submission.
I hope this helps you, otherwise let me know. Good luck! :)
/Axel Dahlberg
Hi Axel, thank you for this. I now understand the requirements to run locally but still a few questions re dependencies.
Whilst it would be pretty trivial to add further (Python) package dependencies I have a feeling that one might want more complex deps than this, particularly in order to simulate networking, or for introducing other services (eg a JS frontend, or a message queue of some sort, or a database...). In short I think this would be very tricky to do with a shell script and, even with documentation, would be a pain to do manually.
So, how would you feel about a submission that required Docker / docker-compose? Of course there could still be a run_submission.sh
that simply ran docker-compose up
or similar, but the responsibility of networking, environment and dependencies would be entirely offloaded and entirely reproducible, and would make multi-service submissions pretty trivial to implement.
This would also be nice as containerisation (of some description, not necessarily Docker - although there's little else around these days) is pretty much only way to go for modern full-stack / distributed internet engineering and it'd be fun to combine this with a (simulated) quantum internet!
As an aside, I'd be interested to know if you tried some kind of container orchestration tool (eg docker-compose or docker swarm or Kubernetes) to achieve the functionality that startAll.sh
achieves: at my very uninformed first glance it looks like it'd be a great fit for transparently either managing multiple nodes or simulating multiple nodes on a single machine.
Thanks!
Hello Jamie!
We have not made use of any container orchestration tool so far. If you wish to focus the submission on utilizing such functionalities and expanding SimulaQron to work with this, that is definitely possible. However, it is not possible for us to setup different environments for many different submissions, which could also be realized by running run_submission.sh
. So if you wish to focus on Docker, that's okay but if you're submission focuses on something else and Docker is simply used to perform what run_submission.sh
could do, we will probably not be able to judge your submission completely.
/Axel Dahlberg
Hi! A quick question - in the instructions, you state that the submission should contain a script (
run_submission.sh
) to execute it. Is this a hard requirement?I think some interesting stuff could be done in more complex environments than a typical local machine (eg cloud platforms, mobile apps) and I'm also a bit concerned that a simple shell script won't be able to resolve complex dependencies (eg Docker).
Of course there must be some ability to run the stack locally but would you accept deployed (by which I mean web apps or mobile apps) projects with links to the deployments? Or have I missed the point entirely and you're looking solely for local (in the software sense of the word) stuff that simulates networking and de-emphasises the actual user interaction aspects?
Cheers, Jamie