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

Passing variables from one experiment to the next #148

Open
AlvaroAguilera opened this issue Jan 18, 2022 · 8 comments
Open

Passing variables from one experiment to the next #148

AlvaroAguilera opened this issue Jan 18, 2022 · 8 comments

Comments

@AlvaroAguilera
Copy link

Hello,

is it possible to pass some intermediate results / variable from one test to the next one when working headless?
How about stopping the test chain / marking the token as finished according to some criteria before the normal end?

Thanks

@vsoch
Copy link
Member

vsoch commented Jan 18, 2022

Are you looking for the experiment factor containerized version? This is for expfactory.org, which doesn't have the concept of headless.

@AlvaroAguilera
Copy link
Author

Yes. I wasn't aware of the difference, sorry. Where is the best place to ask this question?

@vsoch
Copy link
Member

vsoch commented Jan 18, 2022

I can transfer for you over to the expfactory repo!

@vsoch vsoch transferred this issue from expfactory/expfactory-experiments Jan 18, 2022
@vsoch
Copy link
Member

vsoch commented Jan 18, 2022

okay all set!

is it possible to pass some intermediate results / variable from one test to the next one when working headless?

So to answer your question, the expfactory here does support experiment variables that you could set up for an experiment beforehand, but we've never had moving them between experiments, which (imho) goes against the modular philosophy of expfactory, that each is a moveable experiment, because it would not make them different experiments. Have you thought about putting the experiments together that have some dependency on one another?

How about stopping the test chain / marking the token as finished according to some criteria before the normal end?

This would also be done via some logic in your javascript to end the experiment early and then progress to the end. Is the "between experiment" variable you have for this use case?

@AlvaroAguilera
Copy link
Author

For our studies, we are using some very long tests (2 hours+) that are error prone and difficult to debug. That's why we want to divide these tests into smaller steps but for that we need a way to pass the intermediate results to keep the logic working.

Jumping to the finish would be an option, while not the ideal one. Is the token then marked as finished, when we skip some of the tests?

@vsoch
Copy link
Member

vsoch commented Jan 18, 2022

For our studies, we are using some very long tests (2 hours+) that are error prone and difficult to debug. That's why we want to divide these tests into smaller steps but for that we need a way to pass the intermediate results to keep the logic working.

Wow that's long - and to break into smaller experiments you need the data from the previous (so is it worth it if the data is the same large siez)? For saving data, you can continue to post to /save to do a save for the current state. And at any point you can hit /finish to finish an experiment, e.g., see https://expfactory.github.io/contribute#experiment-pre-reqs. My first inclination is that the experiment is too long and should be broken up, and try to remove the dependency between the experiments. But it does sound like this is an interesting use case to pass data between experiments, or just send a message to the server to "finish the whole thing." If you want to spec out a design for that, and either work on it and PR or wait for me to have a weekend to do so, I could help. This isn't in any way related to my work so I couldn't jump on it immediately.

@vsoch
Copy link
Member

vsoch commented Jan 18, 2022

E.g., we could make another endpoint for your experiment to ping to pass some set of variables, and they would be added to the experiment variables that we currently have, and then passed to the directed experiment(s) they are intended for, and that experiment can choose to use them (or ignore). If a variable is repeated from the original set it would be re-written. Then what you could do is split your long experiment into different phases and pass forward whatever you need.

@vsoch vsoch mentioned this issue Feb 2, 2022
@vsoch
Copy link
Member

vsoch commented Sep 27, 2022

Is this still an open question / issue?

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

No branches or pull requests

2 participants