POV-Ray : Newsgroups : povray.beta-test : Code gets the processor too hot? : Re: Code gets the processor too hot? Server Time
2 May 2024 18:15:55 EDT (-0400)
  Re: Code gets the processor too hot?  
From: Ger
Date: 2 Apr 2013 02:45:10
Message: <515a7e76$1@news.povray.org>
clipka wrote:

> Am 02.04.2013 00:38, schrieb Ger:
>>
>> If I use the first Erode macro, the proc runs nicely with all cores at
>> 100% and at normal work temp. When I otoh the Erode1 macro use, the parse
>> times are obviously much shorter but the processor get way too hot when
>> tracing the image.
> 
> "100% CPU load" does not mean that the CPU actually runs at its full
> potential - it only means that the CPU is constantly busy in /some/ way,
> whether it is actually computing stuff or just waiting for the main
> memory to deliver data.

If you look at the code then you'll see that in both cases the object in 
view is something like

difference {
  union {
    box {}
    cone {}
    torus{}
    }
  50 x frame_number // for each iteration the same
  sphere{}
  }

The big difference is how the placement of the little spheres is calculated 
during parse time. And as povray only uses 1 core when parsing a piece of 
code it won't overheat the processor.

> 
> The simpler your scene is, the less memory it takes as a whole, and
> therefore the more of it can be kept in the CPU caches; as a result, the
> CPU spends more time doing actual work than waiting for main memory
> operations to complete.

Shouldn't matter here because in both cases the object data is the same.

> 
> A well-designed computer should be ok even at full throttle. However,
> not all computers are well-designed with respect to thermal management,
> and POV-Ray has a habit of making the CPU sweat like no other application.

True, but beside the point. 

> 
> If you are worried that your CPU might overheat, the most obvious
> solution is to reduce the number of work threads.

Obvious, but not true. Even running on only 2 cores the processor gets 
significantly hotter when using the Erode1 macro

> 
> Note that the maximum thermal limit varies between different CPUs. There
> are also huge differences in what happens when the limit is exceeded:
> Current Intel CPUs are known to handle thermal issues very graciously,
> being designed to automatically throttle their performance (or in the
> worst case simply halt themselves entirely) before reaching fatal core
> temperatures. In contrast, AMD CPUs have a reputation for failing
> catastrophically and suffering permanent damage.

Also very true, but equally beside the point.
I'm not worried that my processor will overheat, it won't. What I'm trying 
to find out how that little change in the code can make such a large 
difference in core temperature. iow, processor load.

The main difference between the 2 code segments is that in the first I 
difference 1 sphere from an object and declare that as the new object and do 
the next difference and so on until I have differenced 1000's of spheres 
from the original object. In the second code segment I difference 1000's of 
spheres from the original object in one big swoop

Btw, I forgot to mention;
Povray 3.7 RC7 running on an AMD FX8-core with Opensuse 12.3

And as an added test I ran the same code on
AMD X64 dual core and an Intel Quad core with the same results. Both with 
the same OS and Povray version.

-- 
Ger


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.