performance, parallelization, threading, vectorization



 
not the fields i know much about, thus more questions than 'issues': 
 
1.) does gnumeric use parallelization - 'threading'? distributing independent tasks on multiple CPU cores? I just spotted that the recalculation of sheets I'm using for performance comparisions is done using mostly only one of the eight cores my machine has. One core - slowly alternating which - is at 'full load', while the others 'do something' ( <5% usage each ). ( All within the limitations that I correctly understand the display of 'usage' in the taskbar of my XFCE desktop and / or 'top' - '1' in a terminal window ). 
 
( The tasks I'm dealing with are not 'normal use' but 'stressing spreadsheets', producing 1 Mio random values and metering the time to convert to strings, to get a handle which algorithm performs best. )  
 
Having 1 Mio sets of only two cells where one cell is fully 'autonom' and the other only dependent on this one partner, thus one Mio independent 'dependency chains',  is a special situation which - IMHO - qualifies very well for threading. And as well qualifies to spot if it is used and how efficiently it works. So I am now curious if gnumeric has omitted a performance factor here, or rather my system or gcc or Linux has weaknesses. 
 
( I know that I can not expect 100% on all cores, they would melt or be slowed down by thermal throtteling. I mean 50% average utilization I have seen before as possible. That would make gnumeric 4 times faster than now? ) 
 
2.) and similar - me curious - applies to 'vectorization' ( SSE, AVX, ... ). I learned shortly that that is the modern path CPU manufacturers improve performance. 
 
sounds strong for appropriate tasks and code, but blocked for gnumeric as gnumeric sometimes uses 'long' values internally also for 'double builds' and SSE / AVX in contrast to FPU don't deal with 80-bit values???
 
would be very appreciated if any experienced dev can shed some light on these points.  :-) 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]