Background on hyper-threading and multi-core or multi-CPU hardware
Windows CPU manufacturers Intel and AMD are expanding performance capabilities of new processor technology with hyper-threading and multi-core processors. Hyper-threading is a way to virtualize two processors on a single physical core and is not to be confused with process threads, which may be a feature of an application. Hyper-threading improves system performance by allowing the operating system to run two independent processes apparently simultaneously on a single physical core. Multi-core processors provide more than one core on a single physical processor socket and are therefore a way to package more capacity on a system. Multi-core processors improve system computing capacity by making each core available as an independent CPU. Both technologies add available computing power to a system, but do not guarantee an application can use it.
ArcGIS Desktop running on multi-core or multi-CPU hardware
ArcGIS Desktop applications, for example ArcMap and ArcCatalog, are fully supported on multi-processor and multi-core computers, but in versions prior to ArcGIS 10, a single ArcGIS Desktop application session does not take advantage of multiple CPU systems, (for example, dual or multi-core processors). This is because ArcGIS Desktop 9.3.1 and earlier applications utilize only sequential process threads.
In ArcGIS 10, Desktop applications can take advantage of multiple cores. When using a basemap layer or accelerated raster layer in ArcGIS 10 applications, multiple threads are started to perform drawing and blending operations, and because these operations occur in another thread, they can take advantage of another processor core. As a result, the application’s user interface remains more responsive than at previous releases.
At ArcGIS 10, background geoprocessing can make use of another core; one core can execute the geoprocessing task and another can respond to user interface (foreground) operations. On a 64-bit edition of Windows, the available memory for all executing 32-bit applications is enlarged, making it beneficial to equip 64-bit Windows machines with more RAM. For example, at least 8GB of RAM would be beneficial if expecting to run two heavy processing tasks, one as a background geoprocessing task and one from a standalone Python script.
Some slight performance improvement from multi-processor systems can be experienced with any ArcGIS Desktop application. Concurrent operating system threads, e-mail, security checks, backups, and many other additional background application processes can be supported on the additional CPU resources without impacting ArcGIS Desktop application productivity.
On a single-CPU system it is possible to consume all the CPU resources from a single ArcGIS Desktop session, for example, when running a heavy geoprocessing task. At ArcGIS 9.3.1 or earlier, if running the same process on a dual-CPU or dual-core processor, the system CPU utilization peaks out at slightly above 50% with minimal performance gain. To fully utilize the resources of both CPUs for another busy thread from a separate process, a separate ArcGIS Desktop session or script or another application needs to exist.
ArcGIS power users, when working in multiple concurrent sessions, can take advantage of a multiple CPU environment. An easy way to accomplish this is to run multiple applications; for example, any combination of ArcGIS Desktop applications and standalone Python scripts. A multi-CPU workstation can significantly enhance heavy geoprocessing and/or heavy map production workflows that make use of multiple ArcGIS sessions within a single user workflow.
ArcGIS power Python scripters can write geoprocessing tools that make use of the subprocess or multiprocessing modules, which may enable the use of more or all available cores by running separate concurrent processes. Scripts using Python’s subprocess module can import ArcPy in multiple concurrent subprocesses, but in the case of multiprocessing, spawned processes and process pools cannot import ArcPy and should be limited to computational functions, which lend themselves to parallelization.
ArcGIS Desktop and other server platforms
For all other server platform environments, such as terminal server, Web services and GIS data servers, Esri technology takes full advantage of multiple-CPU platform configurations. These platforms must be configured to support multiple concurrent client processes. For example, terminal server supports several users per CPU; each Web server can be configured with several instances to support concurrent processing of inbound transactions. GIS data servers’ CPUs routinely support several concurrent ArcGIS Desktop client connections.