Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations cowski on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

How many of you use the SolidWorks SSE parasolid kernel?

Status
Not open for further replies.

StefanHamminga

Mechanical
Jul 18, 2005
354
I guess many of you don't even know what I mean, so a litte explanation first:

===========
DISCLAIMER:
This info is based on my personal experience / findings, this is not coming from SolidWorks!
===========

In SolidWorks the kernel responsible for the geometry functions and consists of a large DLL file (pskernel.dll).

But first a little about CPU instruction sets:
Most modern CPU's support more instructions than just a 'bare' x86 instruction set, namely:

MMX
SSE1
SSE2
SSE3
3DNow
Extended 3DNow

To see which ones your CPU supports check (for instance):

Alternatively (if you want to be really sure) you could use the opensource tool "CPU Rightmark":

The default kernel used in SolidWorks does not use the extra instruction sets, because then they would get lots of complaints from users running SW on hardware that does not support those specific instruction sets.

But SW did us a favour by including an alternate kernel, this time the kernel is compiled to make full use of SSE2 instructions.

This alternate kernel can be found in:

\{SW_Install_Root}\P4\

Or alternatively on your SW install image in:

\{SW_Install_Image}\program files\SolidWorks\P4

Simly copy pskernel.dll over the one in your install root to use the optimized kernel.

======

Now my question is if anyone here uses this and if you have encountered any differences in speed stability.

My results (I use this trick on every SW install I do) are pretty good, but until someone does some actual benchmarking it remains a guestimate. Stability seems to be great on the systems I install.

Stefan Hamminga
Mesken BV
2005 Certified SolidWorks Professional
Mechanical designer/AI student
 
Replies continue below

Recommended for you

I would like to try this, but I don't find the P4 folder that you refer to, which contains the extended DLL. Is it on the install CDs?
 
yes, the solidworks installer seems to be checking for certain cpu's instead of checking if the instruction set is available. For example the popular pentium mobile (dell m70 amongst others). The installer just doesn't copy the file.

Try the second path I gave (the admin image), I'd have to check the cd's to see on which one it is.


Stefan Hamminga
Mesken BV
2005 Certified SolidWorks Professional
Mechanical designer/AI student
 
I must be missing something, I searched for pskernel.dll and only come up with the one in te SW folder. There is no other copy or version on my hard-drive.
 
Stefan,

I think what you are seeing is this.* Back around SW2000 time frame the P4 came out and the AMD Athlon's were kicking the P4's butt. Since SW would like to support Intel they had to come up with a solution. Nobody knew what the solution was, only that SW was able to run without speed penalty on P4s once again. I think you found out what SW did and why this directory only appears on certain installs. Now if SW is willing to accommodate the P4's special instruction set, why not AMD also? One could even surmise that parasolid has a multiprocessing kernel that could be used on the current crop of multiprocessing machines.


*I have used 13 releases of SW so I am more familiar with it's history than many here.
 
well, your theory might be ok, but I know for fact that the P4 folder is installed when you have an AMD Athlon64 (I have one myself).

Also I think a multiprocessing kernel is quite a bit more of a change than a 'simple' recompile.

But your suggestion does make me think about execution order... x86 code compiled for a P3 (and P-Pro) does take account for a fixed pipeline size (cpu design), if you recompile optimizing for a P4 (by that I mean the x86 P4 code) you would get code optimized for the way longer pipeline. The Athlon64 (and Opteron) prefers P3 type x86 code, but with the P4 SIMD (SSE2) extensions.

This would also explain the P4 boost you talked about.

Stefan Hamminga
Mesken BV
2005 Certified SolidWorks Professional
Mechanical designer/AI student
 
Well, I looked on another SW installation and found the P4 folder which contained, what I assume was, the extended instruction set version you described. I copied it over to my machine and will give it a try. I do note that the version numbers of the two files are the same, 0.16.1.245, but the file sizes are different. The original file on my install is 22.1MB and the new file is 25.5MB. Does that sound about right? SW version is 2006, SP2.
 
That is the one you need (it can be confirmed by looking at the file details, there is a property there stating the file is for SSE2 capable cpu's only)

I build a quick & dirty macro timing a full rebuild. I took a pretty large assemby and the average full force rebuild times were:

Default kernel: 90,8 seconds
SSE2 kernel: 86,1 seconds

For a speed increase of 5,5% (just as much as going from a P4 3.8GHz to a 4.0GHz).

These tests were run on my laptop (Pentium Mobile (dothan) 1.6GHz)


Stefan Hamminga
Mesken BV
2005 Certified SolidWorks Professional
Mechanical designer/AI student
 
nope, that would not be correct, I do some coding myself, including multithreading coding (neural networks in java) and it is practically not possible to disable multithreading. If the kernel is programmed to spawn a thread to do a task it is multithreading, if it does the task sequentially it is unithreading.
Things like synchonization make such a big difference that it is virtually impossible (from a financial & practical standpoint) to build software that can switch between these operating modes.

Stefan Hamminga
Mesken BV
2005 Certified SolidWorks Professional
Mechanical designer/AI student
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor