Changes between Version 13 and Version 14 of AppMultiThread
- Timestamp:
- Mar 7, 2008, 8:12:07 AM (17 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
AppMultiThread
v13 v14 21 21 == Assumptions == 22 22 23 We assume that applications have the following properties: 24 25 * Given a number of CPUs N, the app can select a number of threads so that it uses N CPUs as fully as possible. This number may be less than or greater than N; it may be 1. 26 * There may be periods during the app's execution during which its number of threads becomes less than N; e.g. there may be periods during which the app is not parallel, and the number of threads becomes 1. 23 We assume that an app version has a parameter Nthreads, 24 the maximum number of threads it uses. 25 The scheduler sends a host the app version for which Nthreads <= NCPUS and is greatest. 27 26 28 27 == Scheduling policy == … … 39 38 Our scheduling policy, given N CPUs, is: 40 39 41 * Instruct applications to use enough threads for N CPUs, and monitor how many threads NT(A) they actually use.42 40 * Given a set of runnable applications A1, A2 (ordered by priority or deadline), run applications until the number of actual threads exceeds N. 43 * Reschedule the CPUs whenever NT(A) changes for a running app A.44 45 41 46 42 == API == … … 73 69 * <ncpus_available> 74 70 75 Shared-memory messages:76 * core->app (process control channel): {{{<ncpus_available>}}}77 * app->core (process control channel): {{{<nthreads>}}}78 79 71 State: 80 72 * int ACTIVE_TASK::nthreads