0

I want to examine the scalability of an F# application that uses MailboxProcessor<'T>. To do that, i want to test the application by running it first on 1, then on 2, then on 4 and so on of the cores of one multicore machine. How can i limit the logical processors available to the application?

I know that i can tamper with the processor affinity, but will i get the desired results? Will they reflect running the application on different machines that have just the desired number of cores? I am concerned about the ThreadPool and the TaskScheduler: will they be configured properly or will they act as if there is no limit?

gearg100
  • 1
  • 1
  • Is this question relevant? [Is it possible to limit the cores for Parallel.ForEach?](http://stackoverflow.com/q/5512312/162396) – Daniel Feb 22 '13 at 17:31
  • You can from the task manager limit the available cored, to every specific process. Start the application with a wait for input, set with task manager the number of cores, enter input, enjoy. – Ramon Snir Feb 22 '13 at 17:58
  • My problem is that i do not know how to configure a custom `TaskScheduler`/`ThreadPool`/execution context for the `MailboxProcessor<'T>`. – gearg100 Feb 22 '13 at 18:00
  • @ramon-snir are you referring to Set Affinity? if yes, will the ThreadPool's behavior be optimized according to the limit? – gearg100 Feb 22 '13 at 18:20
  • 1
    You might be interested in this question http://stackoverflow.com/questions/9678284/how-to-take-f-measurements-to-get-speedups – pad Feb 22 '13 at 19:37
  • @gearg100 I think that's the right feature, and I think it should be optimized correctly. pad's link seems to confirm that (I think, it's quite late to think properly), but also **points out that there is a way to do so programmatically**. – Ramon Snir Feb 22 '13 at 21:25

0 Answers0