How much configurability to give to users regarding concurrency?
- by rwong
This question is a narrowing-down of these related questions:
How much effort should we spend to programming for multiple cores?
Concurrency: How do you approach the design and debug the implementation?
Given that each user's computers may have different performance characteristics with respect to calculations, memory, disk I/O bandwidth and network I/O bandwidth, and that it is difficult to implement an automated self-tuning system in your software, how much configurability should we give to the end-users so that they can find ways (by trial-and-error?) to improve our software's efficiency?
If we give users the ability to change these settings, how do we give visual feedback to users so they can measure the performance changes?