Rank: Member
Groups: Guest
Joined: 6/8/2005(UTC) Posts: 2
|
We have a transformation (or series of) that takes several seconds to complete (3-11).
During this time CPU utilization never exceeds 25% - is this limit intentional? Is there perhaps a way to encourage GraphicsMill to take full advantage of the otherwise free CPU?
Thanks, Rick
|
|
|
|
Rank: Advanced Member
Groups: Guest
Joined: 8/3/2003(UTC) Posts: 1,070
Thanks: 1 times Was thanked: 12 time(s) in 12 post(s)
|
Hello Rick, Graphics Mill for .NET supports 2 models of threading: synchronous and asynchronous. If you use synchronous threading mode your transformations are executed in the thread from which you call this transformations. Otherwise if your transformations are executed in asynchronous mode, the thread (from which you call them) continues to work after calling but transformations are executed in additional thread. Additional information about multithreading you can read in the article "Creating Multithreaded User Interface". In the both cases system resources (e.g. memory, cpu and so on) are managed by operating system. All you can do is to change thread priorities: Code:
thread.Priority = System.Threading.ThreadPriority.AboveNormal;
But you should keep in mind that if you increase thread priority, processing speed of another threads and applications goes down. If your set of transformations is time critical, I advise you to create additional thread manually (System.Threading.Thread class), raise its priority and call your transformations in this thread one by one. Edited by user Wednesday, October 29, 2008 1:44:17 PM(UTC)
| Reason: Not specified |
|
|
|
|
Rank: Member
Groups: Guest
Joined: 6/8/2005(UTC) Posts: 2
|
Thanks for your response; I thought I'd follow-up in case this helps anyone else.
The 25% confusion was a result of the server having 2 CPU's and Intel's Hyper-Threading enabled. I just had never used a comptuer with hyperthreading before... :$
From the sysadmin perspective Hyper-Threading appears to make each physical CPU behave as if it were two; the result in this instance was any one process/thread only appears to take up 25% of the available resources (one half of one CPU).
Our later (very rudimentary) load testing showed a slight benefit to enabling Hyper-Threading in this instance. As did slightly increasing the priority of the thread doing the perspective transformation.
Again, thanks for your help!
|
|
|
|
Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.