Multi-threaded optimization
You can enable multi-threaded optimization to improve the performance of Contact Optimization, that is, shorten the amount of time it takes to run a Contact Optimization session.
To enable multi-threaded optimization, set the EnableMultithreading configuration property to true.
*
Enabling multi-threaded optimization might significantly improve Contact Optimization performance. The amount of performance improvement is dependent on many factors including:
*
*
*
*
The maximum degree of parallelism achievable is governed by the non-parallel portions of processing and differs from Contact Optimization session to Contact Optimization session.
In general, use the following guidelines.
*
A significant portion of an optimization session run includes the following steps:
1.
2.
3.
4.
5.
Multi-threaded optimization does not affect these processes, which run serially. To improve the performance of reading the PCT and writing the OCT, consider using a database load utility and optimizing your database configuration.
*
If you do not use cross-customer rules in your Contact Optimization sessions, multi-threaded optimization has limited improvement.
Contact Optimization uses multi-threaded optimization most when processing the algorithms that implement cross-customer rules.
*
You define the number of threads processing the cross-customer rules with the MaxCustomerSampleProcessingThreads configuration property. You might need to tune your system to find the optimal value of this setting based on your available RAM and hardware performance characteristics.
*
You might be able to run more threads in parallel if you have a smaller CustomerSampleSize because the RAM utilization per thread goes down. However, decreasing this value also decreases the amount of time that is required to process a chunk. This configuration also decreases the ration between chunk processing and preprocessing, causing the latter to become a bottleneck sooner.
*
You define the number of threads that read data from a sample of customers with the ProcessingThreadQueueSize configuration property. You define the number of threads that write data to a staging table with the PostProcessingThreadQueueSize configuration property.
For more details about tuning multi-threaded optimization for your specific Contact Optimization implementation, contact your IBM® representative.