Ottimizzazione multithreading

È possibile abilitare l'ottimizzazione multithreading per migliorare le prestazioni di Optimize, ovvero ridurre il tempo necessario per l'esecuzione di una sessione di Optimize. Per abilitare l'ottimizzazione multithreading, impostare la proprietà di configurazione EnableMultithreading su true.

*

L'abilitazione dell'ottimizzazione multithreading può migliorare in misura significativa le prestazioni di Optimize. L'entità del miglioramento dipende da diversi fattori, inclusi il tipo di regole di ottimizzazione utilizzate, l'interazione di tali regole con i dati, la velocità di I/O del database, nonché il tipo e la configurazione dell'hardware. Il massimo grado di parallelismo che è possibile ottenere è determinato dalle porzioni non parallele dell'elaborazione e varia da una sessione di Optimize a un'altra sessione di Optimize.

In generale, utilizzare le seguenti linee guida.

*
Una parte significativa di una sessione di ottimizzazione include la lettura di dati dalla TCP (Tabella contatti proposti), la rappresentazione delle regole di ottimizzazione, la preparazione e il recupero di dati dal database, la randomizzazione e la creazione di blocchi di dati (chunk) e la scrittura nella TCO (Tabella contatti ottimizzati). L'ottimizzazione multithreading non influisce su questi processi, che vengono eseguiti in modo seriale. Per migliorare le prestazioni delle operazioni di lettura dalla TCP e scrittura nella TCO, si consiglia di utilizzare un'utilità di caricamento del database e di ottimizzare la configurazione del database.
*
Optimize sfrutta al massimo le potenzialità dell'ottimizzazione multithreading durante l'elaborazione di algoritmi che implementano regole valide per tutti i clienti.
*
Il numero di thread che elaborano regole valide per tutti i clienti viene definito mediante la proprietà di configurazione MaxCustomerSampleProcessingThreads. Può essere necessario regolare il sistema per individuare il valore ottimale di questa impostazione in base alla RAM disponibile e alle caratteristiche dell'hardware.
*
Un valore di CustomerSampleSize più basso può consentire l'esecuzione di più thread in parallelo, perché l'utilizzo della RAM per thread diminuisce. L'abbassamento di questo valore, tuttavia, riduce anche il tempo necessario per l'elaborazione di un blocco di dati (chunk), diminuendo l'intervallo tra elaborazione e pre-elaborazione: come risultato, quest'ultimo processo diventa presto un collo di bottiglia.
*
Il numero di thread che leggono dati provenienti da un campione di clienti viene definito mediante la proprietà di configurazione ProcessingThreadQueueSize. Il numero di thread che scrivono dati in una tabella temporanea viene definito mediante la proprietà di configurazione PostProcessingThreadQueueSize.

Per ulteriori dettagli sulla regolazione dell'ottimizzazione multithreading per la specifica implementazione di Optimize in uso, contattare il rappresentante IBM Unica .



IBM Unica Optimize
 
8.5.0
For more information, see our support and community site: Customer Central