What is 64-bit Background Geoprocessing?
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 which may have otherwise failed in a 32-bit environment. Since all execution is done in the native 64-bit space, more system resources can be used.
Tools that execute in the background honor your current license. For example, if you are licensed for ArcGIS Desktop Standard, then background execution 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
Executing 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 execute. Evaluate the following sections against your current workflows. If any of them apply, using data from an enterprise geodatabase, for example, ensure 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're using tools with 64-bit background processing and enterprise geodatabase data, you'll need to make sure 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 the database client topic for more information on downloading the appropriate libraries.
Unsupported data types
The following data types are unsupported in 64-bit processing:
- Personal geodatabase (.mdb)
- Excel tables (.xls, .xlsx)
If your workflow involves any of the above data types, you can execute the tool in the foreground by disabling background processing or convert your data to a supported type, then execute the tool in the background.
Tools that do not run in the background include the following:
- Tools inside the Metadata conversion toolset
- Tools inside the Geodatabase administration toolset
- Tools inside the Publishing toolset (when executed from 64-bit python outside of the application)
- All Coverage tools
- Tools which 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)
- Custom script, model, or function tools where the author has disabled background processing
You can check the General tab of the tool properties for the Always run in foreground check box to see if a tool is capable of running in the background.
Any script or script tools you run while inside Desktop honors the background processing setting. If background processing is turned on, the scripts will execute in the 64-bit space.
When you execute a stand-alone Python script outside the application, you need to ensure you're running against the 64-bit Python installation to make use of 64-bit geoprocessing. Double-clicking a Python file from Windows Explorer will launch the file using whatever association Windows has set for the .py file. Typically, this is the last version of Python installed, which should be 64 bit. If you want to be absolutely sure which version of Python you're running against (32 or 64), it is best to fully qualify the Python executable when running your script at command line. For example, the following command will ensure the script is run as 64 bit: c:\Python27\ArcGISx6410.2\python.exe c:\gisData\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, then 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.