Server Configuration > Server Properties for Workflow > Using Properties > Best Practices for using Windchill RV&S Batch Edit Parallelization Properties
  
Best Practices for using Windchill RV&S Batch Edit Parallelization Properties
Windchill RV&S can optimize the performance of batch editing operations involving multiple items by using parallel processing with thread pools. For example, a multi-edit operation on a document exceeding 1000 nodes consumes significant amount of time. In such cases, parallel processing with thread pools contributes to performance improvement.
The parallel processing framework enables you to redirect the batch edit operation to either a common pool or a dedicated additional pool depending on the size of the batch edit operation. The thread pool can be sized and allocated appropriately using Windchill RV&S properties for concurrent processing. This setup is required to fulfil your batch edit load with efficient memory management.
Use the following Windchill RV&S properties to allocate and size thread pools during parallel or concurrent processing:
mksis.concurrent.maxThreadsPerCPUCore: Number of threads per CPU core to be allocated for concurrent execution.
mksis.concurrent.commonPoolRatioInPercentage: Percentage allocation of the number of threads to be used by a common thread pool. The remaining number of threads will be used for separate thread pools. The default value is 50%.
As a best practice, consider increasing the value of this property if most of your operations involve less than 256 items. On increasing the value, thread allocation will be adjusted accordingly.
mksis.concurrent.taskLimitForCommonPool: Indicates the upper limit of the number of tasks to be processed concurrently using the common thread pool. The number of tasks beyond this limit will be executed using separate thread pools. The default value is 256.
As a best practice, consider reducing the value so that the operation is executed in a separate dedicated pool if your operation takes longer for less than 256 items.
mksis.concurrent.maxThreadsForAdditionalPool: Indicates the number of threads allocated for each of the additional pools. The number is set to 0 by default if the allocation is done programmatically.
As a best practice, use the value 0 so that application can allocate appropriate number of threads to each additional pool. Currently, Windchill RV&S restricts all additional pools to use maximum of 8 threads. This will help process more number of operations in separate dedicated pools. You can override the default value and set a value from 0 to 16 using this property.
If all additional pools are busy processing other operations, any new operation will be allocated and processed in the common pool.
For the examples covered in this chapter, the following thread sizes per additional pool are considered:
< 64 threads: Maximum thread allowed in additional pool= 4
< 128 threads: Maximum thread allowed in additional pool= 6
>= 128 threads: Maximum thread allowed in additional pool= 8
* 
A server restart is required if any property is modified. You can run a diag command to reflect the changes immediately during processing. For example, im diag --diag=concurrenttaskmanager --user=administrator --password=password --param=restart.
Example 1: Thread Pool Allocation for an 8-core CPU
Example 2: Thread Pool Allocation for a 4-core CPU