Split geometry across multiple tasks
issue brought up @jon-wurtz but I will summarize a potential solution here:
Is your feature request related to a problem? Please describe. Currently there is no way to easily split a geometry that may not fit on a QPU, or is too large to simulate on an emulator into "patches" that are separate tasks.
Describe the solution you'd like
currently we have an API parallelize which takes a small cluster of sites and runs it over multiple instances on a QPU. Another option would be to add a pragma patches([0,1,2],[2,3,4],...) that would enable the user to split the full geometry into separate tasks that get put into a single batch when run. The patches would have an additional tag in the batch so that you can extract those shots from the pandas database.
Describe alternatives you've considered Just trying to patch this together by hand is a bit difficult and annoying.
One issue with this feature would be how to handle the Report output when your patches have sites that are shared amongst the different patches. the naive implementation would just simply have each patch be a different subset of tasks in the batch and it would be up to the users to map the outputs based on the provided metadata.
Another problem is how to input the spatial modulation if the patches do not have the same number of sites. This is not a constraint that parallelize has becase each patch in that case has to be an exact copy of one another.
One solution would be to treat the spatial modulation as if it was the full system but split it down when compiling each task.
Another issue is for the metadata we would need to have a reserved token for variables, something like the patch_id or whatever we decide.