3 | | The following is a design document, not implemented yet. |
| 3 | (The following is a design document, not implemented yet.) |
| 4 | |
| 5 | == Why write a multi-threaded app? == |
| 6 | |
| 7 | The average number of cores per PC will increase over the next few years, |
| 8 | possibly at a faster rate than the average amount of available RAM. |
| 9 | |
| 10 | Depending on your application and project, it may be desirable |
| 11 | to develop a multi-threaded application. |
| 12 | Possible reasons to do this: |
| 13 | |
| 14 | * If your application's memory footprint is large enough that, on some PCs, there's not enough RAM to run a separate copy of the app on each CPU. |
| 15 | |
| 16 | * If you want to reduce the turnaround time of your jobs (either because of human factors, or to reduce server occupancy). |
| 17 | |
| 18 | Writing and debugging a multi-threaded app is often hard. |
| 19 | You may be able to use existing libraries of |
| 20 | numerical "kernels" that are already multi-threaded. |