Introduction to Background Geoprocessing (64-bit)
The installation of the ArcGIS Desktop–Background Geoprocessing (64-bit) product replaces the regular 32-bit background processing, which comes standard with ArcGIS Desktop. Using 64-bit processing to perform analysis on systems with large amounts of RAM may help when processing large data that may have otherwise failed in a 32-bit environment. Since all runs are done in the native 64-bit space, more system resources can be used.
Tools that run in the background honor your current license. For example, if you are licensed for ArcGIS Desktop Standard, background runs will honor all tools that are licensed for Desktop Standard. Background processing does not consume a second license; only one license per machine is used.
Using 64-bit background processing
Running a tool in the background allows you to continue interacting with the application so you can continue working with maps and layers while geoprocessing tools are run. Evaluate the following sections against your current workflows. If any of them apply—using data from an enterprise geodatabase, for example—ensure that you have taken the proper steps to use 64-bit background processing.
Desktop, Workgroup, and Enterprise geodatabases
ArcMap and ArcCatalog are 32-bit applications that communicate with database management systems (DBMS) through 32-bit client libraries regardless of whether the database is 32 or 64 bit. The 64-bit version of background processing requires 64-bit client libraries to make a connection. For example, if you are using tools with 64-bit background processing and enterprise geodatabase data, you need to ensure you have both the 32- and 64-bit client libraries installed on your machine. ArcGIS Desktop will continue to use the 32-bit libraries, and background will use the 64-bit libraries.
See Database and data warehouse clients for more information on downloading the appropriate libraries.
Unsupported data types
The following data types are not supported in 64-bit processing:
- Personal geodatabase (.mdb file)
- Excel tables (.xls, .xlsx files)
If your workflow involves any of the above data types, you can run the tool in the foreground by disabling background processing, or convert your data to a supported type and run the tool in the background.
Tools that do not run in the background include the following:
- Tools in the Metadata conversion toolset
- Tools in the Geodatabase administration toolset
- Tools in the Publishing toolset (when running from 64-bit Python outside of the application)
- All Coverage tools
- Tools that create packages
- Graphing tools (64-bit geoprocessing only; these tools work in traditional 32-bit background processing)
- Data Reviewer tools (64-bit geoprocessing only; these tools work in traditional 32-bit background processing)
- All Production Mapping tools
- All Defense Mapping tools
- Custom script, model, or function tools in which the author has disabled background processing
The Parallel Processing Factor environment is also not supported in 64-bit geoprocessing.
On the General tab of the tool properties, review the Always run in foreground check box to see whether a tool is capable of running in the background.
Any script or script tools you run while in ArcGIS Desktop honor the background processing setting. If background processing is turned on, the scripts will run in 64 bit.
When you run a stand-alone Python script outside the application, ensure that you are running the 64-bit Python installation to make use of 64-bit geoprocessing. Double-clicking a Python file from Microsoft File Explorer will open the file using whatever association Windows has set for the .py file. Typically, this is the last version of Python installed. To be sure which Python version you are running (32 or 64 bit), fully qualify the Python executable when running your script at the command line. For example, the following command will ensure that the script is run as 64 bit: c:\Python27\ArcGISx6410.27\python.exe c:\scripts\intersect.py.
Custom function tools (DLLs)
Custom tools can be used with 64-bit background processing if they have been registered and properly configured. For tool developers working with unmanaged code—C++, for example—you will need to build both 32-bit and 64-bit versions of your tool, and ship and register both for proper use. For tool developers working with managed code—C#, for example—you will need to create your DLL as Any CPU and register your tool with both 32 and 64 bit. For more information on registering your managed function tools (C#, for example), see this knowledge base (kb) article.