orc-lang / orc

Orc programming language implementation
https://orc.csres.utexas.edu/
BSD 3-Clause "New" or "Revised" License
41 stars 3 forks source link

Replace Orc Lists with a parallelism-friendly data structure #218

Open arthurp opened 6 years ago

arthurp commented 6 years ago

Orc Lists are simple cons lists, but cons lists perform extremely poorly in parallel execution because traversal is fundamentally sequential.

Conc-trees may be a decent option (10.1007/978-3-319-29778-1_16), but Conc-trees do not have an efficient head operation, so they would require that the standard library change.

It may be best to combine this improvement with replacing the current standard library collections with more parallel friendly APIs too.