Multiprocessing and ArchiCAD
by GregKmethy, updated 2012-11-21
Multiprocessing means the use of two or more Central Processing Units (CPU) at the same time. Most of new computers have dual-core processors, or feature two or more processors, therefore they are called multiprocessor computers.
What is Multitasking?
'Multitasking (sometimes incorrectly called multiprocessing) refers to an Operating System's ability to handle multiple concurrent processes that are launched by different running applications. In a single processor computer the CPU can execute one task at a time, but the Operating System manages which task should access the CPU. In a synergy between hardware and operating system, the CPU is allocated to different processes/applications several times per second in a process called 'time-slicing'. This enables many programs on your computer at once with apparent instant user responsiveness, even though the single-core CPU can do only one thing at a time. This technology has been around since the 1960's and is not to be confused with Multi-threading.
What is Multi-threading?
Multi-threading is the program's ability to break itself down to multiple concurrent threads that can be executed separately by the computer. A multiprocessor computer can run two or more of the threads at a time, which means that the program "runs faster" on a multiprocessor machine than a single-processor machine. On a single processor machine, while a multi-threaded program will run no faster, a multi-threaded application can appear to be more responsive to user interaction, because the operating system can give the illusion that multiple activities within the same program are running at the same time. "Traditional" single-thread applications cannot make use of two processors, therefore they don't run faster on multiprocessor machines.
What is Hyper-threading?
Hyper-threading is an Intel technology used in the Pentium 4 processor family. Certain sections of the processor are duplicated, but the main execution resources are the same as in a "single-core" processor. It enables two tasks to be executed at the same time, provided only one of these requires the main execution resources. A Hyper-threading processor will appear as two processors in the operating system. However, it will not be able to run 2 tasks of the same kind parallel. In ArchiCAD it means that a LightWorks rendering will not be faster on a Hyper-threading processor than on a single-core processor. In fact the rendering may even be slower if Hyper-threading is enabled, due to the architectural peculiarities of the Hyper-threading processor. Yet, some users report a 15% speed improvement with hyperthreading enabled.
What is a dual-core processor?
As opposed to a Hyper-threading processor, in a dual-core processor every resource is doubled. Basically it is two processors built in one "box". A dual-core processor appears as two processors in the operating system. A computer with two single processors and a computer with a dual-core processor will perform equally, provided other features of the processors are the same - most notably the amount of processor cache and the memory interface speed. Some computers, like the Mac Pro, have two dual-core processors built in, therefore the operating system sees a total of four processors.
Is ArchiCAD multi-threaded?
Until ArchiCAD 12, ArchiCAD was not multi-threaded as a whole. Now ArchiCAD takes advantage of multiple cores / processors in various computationally intensive areas such as:
- Generation of Sections and Elevations,
- 3D generation, loading and saving,
- Drawing updates,
- Placing PDF files as drawing (visual feedback when positioning the drawing),
LightWorks rendering ,
- File saving with data compressing option,
- Managing Autosave.
- And In addition, ArchiCAD takes better advantage of the graphics processor in your display adapter.
How many cores can ArchiCAD use?
ArchiCAD can use as many cores as you have, but do not expect double speed with twice as much cores. Since breaking down tasks to threads and keeping threads in sync takes time, more cores do not always speed up processes. In general, the longer a process takes, the more multiprocessing helps. It is definitely worthwhile to have a dual-core machine, and if you are working on large projects, 4 cores are even better. In some cases 8 cores are faster than 4 cores, but you will not see a difference as big as going from two to four.
When will ArchiCAD be fully multi-threaded?
The multithreading in ArchiCAD brings a dramatic increase in performance over previous versions, but ArchiCAD will not be a fully multi-threaded application at any time soon. This is partly because re-writing the ArchiCAD code to support multi-threading is a huge task, and there are areas where it would not cause a dramatic performance increase. Graphisoft continues to focus on those areas where multi-threading brings the most benefit to our users.
Does the amount of memory (RAM) matter when using a multiprocessing computer?
Yes. You will only realize the full benefit of the power of the two, four or more processors in your computer if you have sufficient memory from which they will run programs and access data. With insufficient memory, too much time will be wasted obtaining information from the much slower disk drives. For example, if you need 1 GB on a computer with a single processor... that same 1 GB would be quite insufficient on a four processor MacPro, as all four processors would be trying to fit their programs and data into that memory space, and would thus be using virtual memory (your hard disks) for the overflow, vastly slowing down all work.
Is rendering with LightWorks twice as fast on a dual-core processor?
Creating a rendered image involves separate steps. When you start a "Photorender projection", first the 3D model of your project is generated in the 3D window, then the model is converted into LightWorks data format, and only the last step is the so-called "rendering", when the lines of the image are starting to appear on screen. In the latest version of ArchiCAD, most of these steps are multithreaded. Only the last phase is multi-threaded prior to ArchiCAD 12.
I never use LightWorks. Does it make any sense at all to buy a dual-core, quad-core, or more, computer?
Absolutely, because of the tremendous performance gains achieved in ArchiCAD due to multithreading. Even though earlier versions of ArchiCAD will typically use only 50% percent of the CPU resources, you are always running other tasks as well - invisible (or not so invisible) operating systems tasks, or user tasks such as another copy of ArchiCAD, for example. During processor-heavy activities (e.g. 3D model or section generating, publishing, updating layouts) when ArchiCAD's CPU usage maxes out, your system will still be responsive when you try to use other applications. For example, when you are updating drawings that are linked into another ArchiCAD project, the Background ArchiCAD - which is another copy of ArchiCAD - will not keep you from working on in the open project. Dual-core will benefit everyone. Quad, Oct-core, or higher will benefit users with reasonably complex models as well as those doing a lot of multitasking. Visit archicad-talk and search for discussion threads concerning purchasing new machines.
I am rendering with LightWorks, but it still seems that both processors stop at 50%
There are areas in LightWorks that are not multi-threaded. Depending on the antialiasing level and other settings, it is normal that LightWorks renders with only one thread. See more in the LightWorks article
Can LightWorks use 4 processors?
Yes. Theoretically, LightWorks can use as many processors as you have
I have a quad-core computer, and when I am using ArchiCAD, the processors all reach 100% only at certain times. At other times, only one processor is at 100%, or all four may be at 25%. Why is that?
Only parts of ArchiCAD are completely multi-threaded. For example, while you are generating a complex shaded elevation, you will see all processors "hot" at 100% at certain times, and at other times, only a single thread is running, consuming the equivalent of 100% of one processor. Certain tasks do not lend themselves to multithreading, which is why all processors are not busy all of the time.
I have a dual-core computer, and when I am using ArchiCAD 11, the processors max out at 50%. They never reach 100%.
Due to Multitasking (see above), the operating system distributes program tasks evenly between processors, even if there is a single thread of tasks. So a single-thread application will behave like this on a dual core machine. On a 4-core computer all four cores will reach 25% instead of one running at 100% and three sitting idle. Because dozens, even hundreds, of other system processes are running on your XP or Mac OS computer, the processor load will actually be more than 50% (2 core) or 25% (4 core), etc...as that other workload is scheduled across the processors also.
Note: Related Pages / Trackback list is cached. If you suspect the list is not up-to-date, then use "Delete Cache" under "More Options"