Multi core support ?
 1-20  21-23

Next
 From:  OlaHaldor
3166.1 
Hi,

I have a client in need of photo real renderings of their products. For this, I rely on LightWave 3D. They can export IGES and STEP from their application, luckily.

The problem however is that it really bogs down my system. I have a Mac Pro 2.8GHz 6GB RAM GeForce 8800GT, and just for Moi3D I installed Windows 7. This way I can convert the files, reboot to Mac OS and copy the files from the Windows partition and start working in LightWave.


So far I just miss one thing for Moi3D - multi core support. This Mac Pro has 8 cores, but only uses one or two during translating scale, rotation, export etc. I might be wrong, maybe Moi3D supports more than two cores? Is there a trigger I should add to a shortcut etc?
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
3166.2 In reply to 3166.1 
Hi Ola, MoI version 2.0 supports multiple cores for producing the export mesh.

It doesn't yet use them for the import part, where you are loading the IGES or STEP data into MoI, but after the model is loaded and you want to save to a mesh file format, during that phase all your CPU cores should be used.

There isn't anything special that you need to do inside of MoI itself to enable that, aside from using MoI v2. MoI v1 only uses 1 core.

Are you using v2 and not seeing multi-core use at export time for mesh generation? If so then possibly there is some setting within Boot Camp to enable multi-core or something like that.


One other thing that can help to reduce loading time is to set the display mesh resolution to be coarser within MoI. To do that go to Options > View > Meshing parameters and set Mesh angle to 25 degrees, and uncheck "Add detail to inflections". This controls the display mesh generation density, not export meshing, but if you have a coarser display mesh set it will help the initial load go somewhat faster and take up less memory once it is loaded.

Also one other thing to check is what version of Windows 7 you have - if you have the "Home Basic", or "Home Premium" versions, those only support one CPU socket - the CPU can be quad-core or dual-core or whatever but if you have 2 separate CPUs you need Windows 7 Professional or Ultimate version for Windows to enable use of the second socket.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  OlaHaldor
3166.3 In reply to 3166.2 
Hi, thanks for your reply.

I have Windows 7 RC1, the one that was available during the summer months. I'm thinking of using it until it will stop working in March. But we'll see. If that's what causing these problems, I'll get a proper license for Pro right away. But as always, there's this $$$ issue.
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
3166.4 In reply to 3166.3 
Hi Ola, I'm not really sure if using the RC1 version of Windows 7 is the cause of that, but I suppose it is possible.

I guess one thing you could check is if Windows itself thinks that it has multiple cores available to it or not.

Somewhere in there is a "System information" tool which will show your basic system information including what kind of CPU is being seen by the OS.

Another way to check is to right-click on the task bar and bring up the Task Manager - on the "Performance" tab, do you see more than 1 CPU in the CPU Usage area?


I'm not entirely sure if Apple actually officially supports Windows 7 with Boot Camp yet, I saw some messages that seemed to say it was not fully ready yet.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  OlaHaldor
3166.5 
I have a Mac Pro, and all eight cores show up in Task Manager -> Performance. But only one, maximum two, shows any activity upon export.

Apple promised Win7 support within the end of 2009 - in which they have failed to do. I haven't bought Win7 yet for the Mac Pro and probably won't do that until I know for sure they have support for it.

However, when I use LightWave 3D on the Windows part, all the cores seem to do their work just fine.

EDITED: 5 Jan 2010 by OLAHALDOR

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
3166.6 In reply to 3166.5 
Hi Ola - re: multi-core export - are you using MoI v1 or are you using the MoI v2 beta?

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Samuel Zeller
3166.7 In reply to 3166.6 
Bootcamp dont support windows 7 but only for some specifics drivers, its 100% supporting multi-core.
Bootcamp is just creating a partition for your windows 7 but when windows 7 boot up its like your computer doesn't have osx installed.
Its just like if your macpro was a regular PC. So multi-core should work.
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  OlaHaldor
3166.8 In reply to 3166.6 
I'm using the v2 beta in order to actually be able to open those heavy IGES and STEP files I'm provided with.
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
3166.9 In reply to 3166.8 
Hi Ola, I'm sorry I don't really know why multi-core is not working for you, I have not heard of this specific problem from anyone else before.

There is actually a setting in the moi.ini file that can be used to turn multi-core off and limit the number of threads that are used, you did not happen to set that did you?

You can open the moi.ini file by going to Options > General and press the Edit .ini file button there.

Inside the [Mesh Export] section, there is an entry:

[Mesh Export]
ThreadLimit=


Make sure that is blank, if it is set to some value it will cause the number of threads used to be limited to that value.


MoI uses a Windows system function called GetSystemInfo() (http://msdn.microsoft.com/en-us/library/ms724381(VS.85).aspx) to ask Windows how many processors are available and then uses that many threads. (unless ThreadLimit in moi.ini is set, which will cap the number of threads used)

I don't really know why that would not work properly on your system.

But you seem to be trying to use a combination of unfinished and unsupported Windows stuff (not final release of Win7, was that correct? , on Boot Camp which does not yet fully support even the full Win7 release) which may have something to do with it...

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
3166.10 In reply to 3166.8 
Hi Ola, attached here is a little program that shows what the GetSystemInfo() function is reporting about the number of CPUs available.

Can you please run it and post what number is reported on your system?

- Michael
Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  OlaHaldor
3166.11 In reply to 3166.10 
ThreadLimit= is blank
The app you were refering to shows GetSystemInfo() Number Of Processors = 8

And like you say, this can be caused by the given factors that I'm using Windows 7 RC1 through BootCamp.

I'd rather not have to spend $$$ on a PC just for Moi, so I'll just keep shush about this topic until Apple releases an update for BootCamp and support for Windows 7, along with a retail license.


Thanks for all your time so far :)


Edit: I noticed that during the build of LWO inside Moi, all 8 cores are working 100%. By that, I mean when I select LWO in the export saving options, the Meshing Options panel opens, and the build up of the model does its thing.

EDITED: 9 Jan 2010 by OLAHALDOR

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
3166.12 In reply to 3166.11 
Hi Ola, actually it sounds like your machine is all working properly.

quote:
Edit: I noticed that during the build of LWO inside Moi, all 8 cores are working 100%. By that, I mean when I select LWO in the export saving options, the Meshing Options panel opens, and the build up of the model does its thing.

Yeah, actually that's the part that is multi-core enabled, the mesh generation part.

After the mesh has been generated and you want to write the LWO file to disk, that disk writing part will not use multiple cores anymore. Writing data to disk tends to be an inherently sequential function and is not really suited for the use of multiple cores.

But that disk writing part of the export process should not take hours and hours like the mesh generation part could sometimes take up in v1.

Are you seeing a long delay (like over 5 minutes say) for the final export step?

If you are working with large files, there is just a whole lot of data being processed, you will need some level of patience even on a fast machine. I've done a lot of work in v2 to shorten the overall time from multiple hours hopefully down to some number of minutes though. But that still does not mean that it will be instantaneous, you must still be patient enough to wait for some time on large data sets.

Could you give me some idea of how long the whole process is taking for you? There are basically 3 different stages - first the import of the file, then at export there will be 2 additional stages, a mesh generation phase (this is where multiple cores are used), and then the final stage is actually writing the mesh data to disk. How long are each of these stages taking for you?

If you are working with extremely large files, you might want to uncheck the "Weld vertices along edges" option at export time (on the expanded mesh options dialog, click the little arrow in the lower left corner of the dialog), which will avoid one other piece of processing during the writing the data to disk stage.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  OlaHaldor
3166.13 In reply to 3166.12 
I think you mentioned this earlier, but I didn't get it back then. :) So I stand corrected on this multi-core support issue.
I don't remember at this moment if all the cores are in action when I rotate or scale the models. Should it use all the cores? I can check whether it does or not tomorrow when I'm at work again.


The import process takes somewhere between 3-10 minutes, depending on what model I load. Sometimes less than a minute if it's a really simple model with VERY few things going on.

The import is one thing, but I'd like to scale and rotate too, since the scale of the models I receive is 150-200m high, while it should be more like 1,3m high. So scaling and reposition takes some time, maybe 15-60 minutes per model depending on how long I have to wait between scale/move actions in order to get it more or less correct.
Mesh generation is fast. About a minute when the the quality slider is set to about 10 or 8 maybe. Saving is no problem at all. Blink of an eye, and you'll lose it.

In total it comes down to somewhere between 20-60min per model to import, scale/move and then export.

I could do this in LightWave Modeler, but it takes far more time, and it will sometimes make Modeler crash due to the insane amount of polygons. We'll see if I can find a workaround somehow :)



If I un-check weld edges, will I be able to select a polygon and hit "Select connected" then? I honestly haven't tried to un-check welded edges. But renaming and grouping certain parts of the object to get some parts as rubber, something else as plastic or metal, it's crucial to be able to select a few polygons and hit the shortcut for "select connected" and then have the entire part selected and then apply a new surface.
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
3166.14 In reply to 3166.13 
Hi Ola, so pretty much what you are describing is what you should expect on an extremely heavy model.

You just need to employ some patience when working with such large data sets.

It sounds like the import, and export steps themselves are reasonable - sounds like around 10 to 15 minutes for those parts all together?

That's a major improvement from MoI v1 where the mesh generation stage would probably take more like 1-2 hours on such a heavy model. In MoI v2 with various optimizations in addition to multi-core, that mesh generation stage is probably clocking in about 50 times faster than v1 on your 8-core machine.

It sounds like your biggest sink of time is trying to edit this huge model inside of MoI - if you can avoid that step and edit the model in LightWave maybe that would work better if you can avoid crashing LightWave, probably best would be to split the model up into some smaller pieces instead of just one huge chunk. You can do that by selecting parts of the model in MoI and using File/Export, which writes out only the selected objects to the file.

Probably one of the big time sinks when trying to edit the model in MoI is the undo units that are generated when you edit a model. Right now every edit that you do on a model will store a compressed full copy of that object in the undo stack so it can be restored. There is not currently any way to entirely disable undo, but I will see about adding that in.


If your model is so huge that you cannot really edit it inside of MoI or LightWave either, then you really need to break it into some separate file pieces instead of trying to deal with it all at once.


> I don't remember at this moment if all the cores are in action
> when I rotate or scale the models. Should it use all the cores?

No, that will not make use of multiple cores currently - the mesh generation stage is the only area of MoI that employs multiple threads right now.

My guess is that it is probably not so much the rotation or scale transforms themselves that are bogging you down but rather the generation of undo units.

Unfortunately making a program use multiple cores is one of the most difficult programming tasks that exist, and it is very easy to have subtle errors that are hard to track down and reproduce. So it isn't something that I can easily just immediately add to every piece of MoI across the board (which seems to be what you are expecting?), it has to be done with extreme care so it will be a targeted thing. For v2 the mesh generation at export which was usually the single most time consuming area was targeted.


> If I un-check weld edges, will I be able to select a polygon and
> hit "Select connected" then?

No probably not - so you will probably want to leave it checked. Checking it just causes some additional work to be done after the mesh generation stage, after you push the OK button on the meshing options dialog. But you are saying that stage is going very quickly for you anyway so there is no need to try and speed up that step.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  OlaHaldor
3166.15 In reply to 3166.14 
The largest IGES and STEP files I've received is about 200mb, with every nut and bolt needed for the construction to look just like the real deal. Not that I necessary need it for the visualization I do for them, but that's what I get from them, therefore it's a tedious stage to deselect all and select only what I want to export in several stages to individual object files.

I totally understand programming is hard work, there's a reason I don't do that kind of work and rather let others do it instead ;-)
I never thought about the fact that the reason for this time consuming job was due to the writing of a bank of undo/redo. Thanks for clearing that.

I'll see if I find a workaround for the scale/rotate work for LightWave and keep you guys posted. I guess I'm not the only LW user in here.


Again, thanks a bunch for your time!


Edit: I went into Options and under View -> Meshing parameters I set the Mesh angle to a larger number while I'm just scaling and rotating. This made the handling of these procedures quicker than before.

EDITED: 10 Jan 2010 by OLAHALDOR

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
3166.16 In reply to 3166.15 
Hi Ola, that's good news that reducing the display mesh density helps, that will also help keep memory consumption down a fair amount as well.

One thing that can help to reduce detail for little nuts and bolts pieces is to use the "Avoid smaller than" option in the expanded dialog at export time.

That lets you enter a distance, and any polygons smaller than that size will shift to get a much rougher mesh on them, things smaller than that size will get meshed to an angle of 35 degrees.

So if you enter in a distance about the size of one of those bolts, that will probably help to reduce the generated mesh density by quite a bit.


If its the more dynamic movement aspect of the moving and scaling that is bogging down, one other thing you can try is to enter numeric scale factors rather than picking points with the mouse.

For example if you want to scale all objects down to 1/100 of the current size, push Ctrl+A to select everything, then run the Transform / Scale command, and now type 0 <enter> to specify the 0,0,0 origin point for the scale's origin, and then type 0.01 <enter> for the scale factor.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
3166.17 In reply to 3166.15 
Hi Ola, actually I'm kind of confused about your last message here.

Earlier you wrote that the import took between 3-10 minutes, and that at export time, mesh generation took 1 minute, and saving to the file was nearly instantaneous.

So that adds up to about 11 minutes of time, but you also wrote that along with scaling and positioning it would take you between 15-60 minutes to complete each model.

That means that it is taking you nearly 50 minutes to do just the scaling and moving part, is that actually correct?

I had assumed that you were seeing some kind of long pause after each scale or move, which I thought could be related to undo unit generation with a very heavy model. But in your most recent message you mention that decreasing the display mesh generation helped to speed up that process - however the only thing that will actually speed up is the screen redraw, not undo unit generation.

So when you were talking about it taking you a long time to do the moving and scaling part, do you mean that it is just the screen redraw that is going too slow?

One thing to note is that your screen redraw is much more dependent on your video card than on the number of CPU cores you have - do you possibly have some kind of underpowered video card on your machine?

Anyway, if your dynamic screen redraw is a problem the steps that I described previously where you can do transforms by just typing in the scale factor with the keyboard rather than moving the mouse around should help out a lot to get things done with much fewer screen redraws during the process.

You may also want to hide edges (use the "Types" section in the Scene Browser as a way to do this quickly) which can also help to speed up the display a lot - in many cases drawing the edge curves of models is actually the most time consuming part.


But it is not entirely clear to me exactly what you are running into with the moving and scaling part, if you could possibly describe what you are seeing in a bit more detail that could possibly help.

- Michael

EDIT: I see now in your original message that you have an GeForce 8800GT card - that's certainly a good card and for normal uses should be really fine. But if you are working at a particularly high complexity level you may think about upgrading it to get better 3D display performance, I think that card is part of the GeForce 8 generation of cards, and as you can see at: http://en.wikipedia.org/wiki/GeForce, there are some newer generations since then... It is possible that a more up to date card could help you if your problem is mostly related to display speed with high density models.

EDITED: 11 Jan 2010 by MICHAEL GIBSON

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  OlaHaldor
3166.18 In reply to 3166.17 
Yeah it's possibly the redrawing that makes it so time consuming. I'm really out of clues, so that's why I tested that one, since you had given me tips about that setting earlier.


I'm thinking of a GTX 285 for the Mac, but it's too expensive for what I can afford at the moment. If they only could have PC market pricing for such equipment.. :-)
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
3166.19 In reply to 3166.18 
Hi Ola, so does setting the display mesh density to be coarser make it workable for you?

I'd suggest setting (under Options > View > Meshing parameters) Mesh angle to 25 degrees and unchecking "Add detail to inflections".

Then along with that hiding all edges also can be a big boost to screen redraw time.

If that speeds things up enough to be usable then you may not need to get a new video card, although when dealing with very heavy models you generally want to have as up to date hardware as you can.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  OlaHaldor
3166.20 In reply to 3166.19 
Oh yes, it does a MAJOR difference in performance!
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All

 

 
Show messages:  1-20  21-23