on 2017-02-0605:33 PM - edited on 2021-11-0906:15 AM by Noemi Balogh
Multiprocessing means the use of two or more Central Processing Units (CPUs) within a single computer system at the same time. The term also refers to the ability of a system to support more than one processor or the ability to allocate tasks between them. Nowadays new computers have multi-core processors, or feature 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 Multithreading?
Multithreading 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 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 multi-core processor?
As opposed to a Hyper-threading processor, in a multi-core processor every resource is multiplied. Basically it is more 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 multithreaded?
Yes, Archicad takes advantage of multiple cores / processors in various computationally intensive areas such as:
2D drawing in case of projected 3D elements, and other special cases,
Generation of Sections and Elevations,
3D generation, loading and saving,
Background conversion of opened 3D based windows,
Placing PDF files as drawing (visual feedback when positioning the drawing),
File saving with data compressing option,
And in addition, Archicad takes better advantage of the graphics processor in your display adapter.
(Until Archicad 12, Archicad was not multithreaded as a whole.)
On the Server side: the BIMcloud Server is multithreaded also.
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 multi-core machine. 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.
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, 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 Windows 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.