trendscenter / coinstac

Collaborative Informatics and Neuroimaging Suite Toolkit for Anonymous Computation
MIT License
45 stars 19 forks source link

Coinstac headless client TBN #1680

Open rssk opened 1 year ago

rssk commented 1 year ago

Task Description

While there are several 'headless' client iterations, this one will be geared toward cluster use, as well as UI controllability. It may be useful to investigate later how the other clients can or cannot be rolled into this one

Requirements

dylanmartin commented 1 year ago

While there are several 'headless' client iterations, this one will be geared toward cluster use, as well as UI controllability. It may be useful to investigate later how the other clients can or cannot be rolled into this one

Lets define and name things really clearly and distinctly We've used the word "headless" a number of times for different things already. Define the interface/use case/requirements we are trying to fit. We can begin by setting very narrow aims for this package and along the way find opportunities to decouple and isolate atomic pieces that can be more broadly useful through composition.

The use-case we're serving can be described as: "Running COINSTAC pipelines on computing clusters with HPC schedulers."

Maybe we make a package named something like "coinstac-client-hpc"

dylanmartin commented 1 year ago

• Updates from this local client to the respective user UI might be nice, this could be tricky with GQL subscriptions, at worst case maybe a 'starting, running, finished' (cleaning up pipeline updates would help this + tracking down why updates are slow often)

Are there currently separate channels for status updates to get to the UI? GraphQL subscriptions are one way information gets to the UI. Is there currently another form of communication that comes from the local pipeline to the UI?

dylanmartin commented 1 year ago

What is different about using COINSTAC with HPC schedulers than in a normal desktop environment?

dylanmartin commented 1 year ago

Here are some requirements I'm confident are needed: