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

Feature request: Run one instance of WA across multiple devices #136

Open
lisatn opened this issue Apr 11, 2016 · 5 comments
Open

Feature request: Run one instance of WA across multiple devices #136

lisatn opened this issue Apr 11, 2016 · 5 comments
Milestone

Comments

@lisatn
Copy link
Contributor

lisatn commented Apr 11, 2016

I'm submitting a feature request/enhancement request for WA to run an agenda across multiple devices simultaneously, especially in a board farm setting. IIUC, users can create a config file per device, but there isn't a way to run one instance of WA and have the devices run the workloads in parallel. It'd be nice to say "wa run agenda.yaml -c [list of devices]" or something similar to that in one go.

@ep1cman
Copy link
Contributor

ep1cman commented Apr 12, 2016

In the past I have run multiple WA instances using a shell script something like:

wa run experiment.yaml -c device1.yaml -d device1_output -f &
wa run experiment.yaml -c device2.yaml -d device2_output -f &
wa run experiment.yaml -c device3.yaml -d device3_output -f &
wait

This will show the output of all 3 wa instances on the screen at the same time, you can check the individual logs if you want to see the output of a specific WA instance

@credp
Copy link
Contributor

credp commented Apr 12, 2016

Does anyone know how WA would handle multiple instances updating the same sqlite DB? I know you can direct output from multiple runs into the same database file, but I haven't tried with simultaneous writers. If it's OK, you can get a single result file out without post processing outside of WA. The results view of the database is more-or-less exactly what you'd obtain from parsing results.csv, so it's easy to use in tools as well.

The only issue I have using SQL db is that I usually tell the results apart with a combination of workload name, spec id and run_uuid which might be an issue for other users too. I have a script which can combine results from separate runs (for csv files only at the moment) to get a single set of results to use in other tools but you need to be careful to be sure you're combining runs which you know come from the same board with the same software so it's not generally applicable.

@setrofim
Copy link
Contributor

Does anyone know how WA would handle multiple instances updating the same sqlite DB?

The short answer is, it won't. Sqlite does not support simultaneous connections, so if two running WA instances attempt writing results to it at the same time, one with them will fail, probably with something like "could not open file for writing".

Another alternative for collecting multiple run results in one place is MongoDB. That will support multiple parallel uploads and will contain full results, including traces, logs, etc. It's a bit more hassle to set up and query though.

@credp
Copy link
Contributor

credp commented Apr 12, 2016

Yep, I thought as much. I'm looking to put all our monthly results into a database somewhere in the very near future, directly from the jenkins jobs, hence me working on changing my reporting scripts over to obtaining data with SQL queries. I guess I will need to ask for a MongoDB VM somewhere as well :)

@lisatn
Copy link
Contributor Author

lisatn commented Apr 12, 2016

Thanks Sebastian for sharing your script idea. I'll give it a try and see if it works for me. It's something until a better solution comes along :)

@setrofim setrofim added this to the Future milestone Feb 7, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants