"Parallel distributed computing" (PDC) is where lots of nodes run at the same time,
exchanging data either directly (P2P) or through a central relay.
PDC is usually done on clusters.
People have thought about doing it on volunteered computers.
This introduces lots of problems, but it's possible that these can be solved.
There has been renewed interest recently because of possible AI applications.
BOINC's computing model is designed for batch processing, not PDC.
It doesn't - for example - let you ensure that jobs run at the same time
on different nodes.
However, many of BOINC's features - e.g. user computing preferences -
are applicable to all types of processing, not just batch processing.
A PDC system using volunteer computers would have to
replicate these features.
Can BOINC be extended to handle PDC as well as batch processing?
I propose an approach to this in a github issue:
In this approach, the PDC system is outside BOINC;
they interact only through communication between client and app
that decides when the PDC system can use processors.
I call these "sporadic apps" because their use of processors is sporadic.
This involves fairly minor changes to BOINC.
It would enable PDC and various other types of applications.
Comments welcome.
-- David