Algoritmo multi-processore di WinRAR e versione a 64bit

Supporto a WinRAR

Moderatore: Andrea

Rispondi
Andrea
Site Admin
Messaggi: 404
Iscritto il: 14 mag 2002, 18:52
Località: Bergamo
Contatta:

Algoritmo multi-processore di WinRAR e versione a 64bit

Messaggio da Andrea »

Penso sia utile per chi vuol capire qualcosa sull'algoritmo multi-processore di WinRAR la risposta che l'autore di WinRAR, Eugene, ha dato ad un cliente italiano esperto in materia.
Inoltre c'è un utile accenno alla versione a 64bit.

-----Messaggio originale-----
Da: Eugene Roshal
Oggetto: Winrar 3.60 on multiproc/multicore setup

Hello,

> I suspect a contest switch phenomena between Winrar thread, so causing a
> poor cache resource utilization. This happens with ver. 3.51 and ver.
> 3.60 (especially with quad-way setups).

I tried to assign threads to dedicated processors when developing 3.60,
but it did not affect the overall performance.

> How parallel is by design winrar 3.60 compression algoritm?

It is not parallel by design. It was a difficult task to parallelize
some parts of RAR algorithm and for some parts it seems to be impossible.

> Why on quad smp platforms it doesn't scale well?

Because a large part of compression code cannot be paralleled at all.
So weight of this part in total execution time is increasing with
increase of CPU number.

> What is the quality/efficiency of winrar executables on the latest CPU
> microarchitecture?
> Are the latest "multimedia" SSE, SSE2, SSE3 instruction useful for the
> compression algoritm? Does winrar use them?

According to my current knowledge and experience, they are useless for
RAR compression. Maybe we'll find out how to utilize some of them
in the future, but I am not sure about it.

> Last and not least, dealing about Win x64 operating system, are you able
> to compile a 64 bit native version of winrar 3.60?

I did some tests with RAR algorithm and 64 bits and gain was very small,
only few percent. It is not worth to create a separate version for
this gain.

> X86-64 platforms allow the use of 16 general purpose internal
> registers instead of the 8 in classic x86 architectures.

Yes, but lack of registers does not hurt RAR compression a lot.
RAR spends a lot of time walking through numerous linked lists,
updating several large hash tables and comparing short character
strings. Its speed depends more on memory latency when accessing
random not cached memory addresses.

Eugene
Cordialmente,

Andrea
Supporto WinRAR.it
Marcolino
Messaggi: 4
Iscritto il: 29 giu 2008, 14:13

Re: Algoritmo multi-processore di WinRAR e versione a 64bit

Messaggio da Marcolino »

Ho un Pentium 4 con 256 Mega di RAm XP-SP2 e ho comperato da Essedi un computer con Intel doppio processore 32bit s.o. XP sp3, scheda video NVIDIA GeForce 8500, 4 Giga di RAM, ma ho rilevato che le prestazioni di WinRAR abilitato come multiprocessore non sono un granché superiori. In più nella verifica mi dice che ho uno o due file con CRC danneggiato, ma non è vero. E' un problema di WInRAR o del pc nuovo?
Ciao
Andrea
Site Admin
Messaggi: 404
Iscritto il: 14 mag 2002, 18:52
Località: Bergamo
Contatta:

Re: Algoritmo multi-processore di WinRAR e versione a 64bit

Messaggio da Andrea »

Marcolino ha scritto:Ho un Pentium 4 con 256 Mega di RAm XP-SP2 e ho comperato da Essedi un computer con Intel doppio processore 32bit s.o. XP sp3, scheda video NVIDIA GeForce 8500, 4 Giga di RAM, ma ho rilevato che le prestazioni di WinRAR abilitato come multiprocessore non sono un granché superiori.
L'algoritmo attuale di WinRAR sfrutta ad un livello adeguato un multi-processore, pur non essendo stato pensato inizialmente per questo ambiente.
In ogni caso da test effettuati l'implementazione attuale ha portato ad un ottimo miglioramento delle prestazioni.
Per provarlo clicca su "Utilità" > "Valutazione e verifica hardware", effettuando la prova prima con l'opzione "Multi-processore" attiva e poi non-attiva.
Nel mio caso, un processore Intel Quad-core, l'indice passa da 1.199 KB/s ad un semplice 582 KB/s.
Il problema è che poi il "collo di bottiglia" è l'hard-disk il cui trasferimento dati non è ottimizzato per un ambiente multi-processo.
Marcolino ha scritto:In più nella verifica mi dice che ho uno o due file con CRC danneggiato, ma non è vero. E' un problema di WInRAR o del pc nuovo?
Se sono solo alcuni file e sono sempre quelli può darsi che si siano danneggiati durante il trasferimento.
Per verificare la bontà del PC, la prova sopra indicata è un buon punto di partenza.
Cordialmente,

Andrea
Supporto WinRAR.it
Rispondi