I can only give some general guidelines, performance is an extremely
complex subject since it is caused by the interaction of different
hardware components (CPU, memory, disk and caching). Further, stitching
places a different kind of load on your system than blending: stitching
generates a continuous stream of data, blending requires much random and
fragmented access. Also the PTGui blender is currently limited to a
single core. Finally much depends on the size of the panoramas you are
going to stitch.
That said:
If you are planning to stitch many small to medium sized panoramas, get
lots of ram and a fast processor. Having enough RAM prevents that PTGui
will need your hard disk for temporary storage. Then the CPU becomes the
bottleneck so a faster processor will speed things up.
If you are going to do gigapixels the main bottleneck is the hard disk,
so get a fast RAID or possibly an SSD. I'm not a hardware expert but
others can give you some advice here. Once the hard disk is the
bottleneck the processor speed or the number of cores won't improve the
stitching speed, and using too many cores may indeed slow things down
because it will cause a more fragmented stream of data to be written to
the disk.
There are two parameters you can tune:
- the amount of RAM PTGui will use at most. Set this as high as possible
but not too high. If PTGui attempts to use more RAM than is available
this will cause other applications to be swapped to disk, which can
bring your computer to a halt.
Also be sure to close other applications such as Photoshop which can
also claim gigabytes of memory.
- the number of cores. Hans will tell you that 2 is the best but this is
not a general thruth. For example here's a test on my quad core machine:
1 core: 43.03s
2 cores: 28.47s
3 cores: 24.13s
4 cores: 21.12s
Of course this is for a small 6000x3000 panorama which fits in RAM.
Get the 64 bit version of PTGui. Now that PTGui (9 beta) for mac is
available in 64 bit too it doesn't make much difference whether you
stitch on Windows or OS X. A RAM disk only made sense with the 32 bit
version since it was limited to 2 GB of RAM.
And yes definately make sure that your Antivirus is not intercepting the
PTGui temporary files.
Joost
How much RAM is your PTGui configured to use?
Joost
So two instances will attempt to use 138% of your ram..
> You are right that very small panoramas can benefit from all cores.
> Actually it is the actual image size not the final panorama. Thats
> what I could see from the Gigapixel test which uses very small images
> and can use more cores.
You can easily see how much PTGui needs for a panorama. Go to Project ->
Calculate Temporary Disk space. For your 14800 16 bit panorama this is
about 11 GB. My 6000 pixel 8 bit panorama needs 1.3 GB.
Keep in mind that these are just pessimistic estimates, and there are
many factors in play, but in general once this number exceeds the amount
of RAM the stitching becomes more and more disk bound.
> But it changes pretty fast when you go up to what most people stitch
> today.
>
> Here are my tests.
> 6000x3000 8 bit
> 2-30 sec
> 4-22
> 8-25
Your i7 iMac is in fact just a quad core processor with Hyperthreading.
Hyperthreading allows the CPU to quickly switch to another thread if one
thread is waiting for data from memory. For truly CPU bound processes
(i.e. heavy calculations) the performance gain is minimal. I'll see if
PTGui can be made to use the real number of cores and ignore
hyperthreaded cores.
Joost
No they don't. Each PTGui process will (try to) use the configured
amount of RAM.
> The weird thing was that the second PTGui first took over and while
> the first one was at 1-2 warping the second had reached 3-4 but when
> it came to the last image they both was equal and they saved the
> panoramas at the same time.
What you see is two processes fighting for the same resources. The OS is
continuously trying to swap both processes to and from disk.
Joost
See Project -> Calculate Temporary Disk Space.
'big' is when it exceeds the available RAM on your computer by a factor
of 1.5 or so.
> Also, Hans says that the final output is not important, but the
> individual image size yes. Does it mean that we can stitch a panorama
> faster if our individual images are small? (and in such case, again,
> what is small?)
Final output size is the most important factor in memory usage, but
source image size does have some influence.
> About Windows7 vs OSX, I've read that OSX is managing better the
> memory assignment, PTGui uses all the memory in OSX but in Windows it
> uses only a small part (even when we are configuring it for using
> 90%):
> http://groups.google.com/group/ptgui/browse_thread/thread/52d88fd695f4dd7d/
Not true; PTGui's memory management on windows and mac is identical.
There may be some small OS related differences (Windows is a bit more
efficient in handling mutexes for example)
> That's related with RAM disks too, because some members said that the
> only way for using the total memory in windows7 is making a RAM disk.
> But that's is for PTGui 8.3, is this fixed in PTGui9?
> So, what is better? to let PTGui use the memory from the system, or to
> force it making a RAM disk?
On 64 bit windows using a RAM disk should not improve anything.
> Also, Hans said that is not a good idea to open multiple PTGui, but
> Joost said that it could work if we configure each PTGui to use less
> memory (suppose 40% for each one, not 69%). Who is right?
It's possible but you gain nothing so just run a single instance.
Joost