Chapter 10. Processing Very Large Images (64 Support)

Table of Contents

10.1. Differences Between 32 and 64 Bit Operating Systems
10.2. Support on 32 Bit Operating Systems
10.3. Support on 64 Bit Operating Systems
10.4. 64 Bit Porting Notes

Chapter Objectives

This chapter contains information needed to understand the limitations and the support of the ML with regard to handling large images.

10.1. Differences Between 32 and 64 Bit Operating Systems

You need to consider whether you work with a 32 or a 64 bit operating system to understand the ML support for very large images. On a 32 bit operating system, the available address space for the memory is about 4 giga voxels (232 bytes) and on a 64 bit system it is 264 bytes. This limits the size of the largest possible chunk of memory which can be handled as a contiguous block. Moreover, the ML works with signed arithmetics - i.e. on 32 bit systems, the ML can only half of this size, and the largest contiguous memory chunk that can be handled has only 2 giga bytes.

This, however, is only a theoretical maximum value, because the operating system, the ML cache, the application, etc. allocate memory as well and thus also reduce that maximum value. However, since ML module networks should not load such memory chunks in contiguous memory blocks but work with pages (as described in ImageModel3), you can circumvent this limitation. Thus images with a size of much more than 2 GB can be handled on 32 bit systems provided that paging is appropriately configured.

You can use CoreControl to check the type and the system you are working with. It is available as field System Type in the panel Version Information.

[Note]Note

ML versions previous to 1.2.8.4.12 do not support processing large images on 32 bit systems.