I have a perfectly parallel function that would run great on a machine with 1024 cores and 4GB RAM. There's quite a lot of branching (doing set union and traversing structs). There is no communication between threads (except when the whole calculation is complete). Each thread needs less than 1MB of private memory, and no shared memory. The result of each computation can be merged like a CRDT; it is basically
max over a set of structs.
I know this would fit distributed computing. GPU's are more efficient and powerful than CPU's, so I would like to use them instead. It seems like this would fit GPGPU, since it's massively parallel and uses so little memory, but how can I tell? OpenCL/AMD/CUDA doesn't matter.