Building ARM Containers with Singularity Container Services

By Staff

Dec 19, 2023 | News

Introduction

The Acorn RISC Machine, or ARM as it is now known, and later processor architecture has become a cornerstone in the landscape of Information Technology (IT) and modern computing. Initially designed for Acorn Computers in the 1980s, ARM processors have evolved to become the driving force behind a multitude of devices, ranging from smartphones and tablets to embedded systems and servers. One of the key reasons for the widespread adoption of ARM architecture is its Reduced Instruction Set Computing (RISC) design philosophy, which emphasizes simplicity and efficiency in instruction execution. This design choice makes ARM processors highly energy-efficient, making them ideal for portable devices where battery life is a critical factor.
In the realm of IT, ARM processors have played a pivotal role in the shift towards edge computing. As the demand for processing power at the edge of networks continues to grow, ARM’s energy-efficient and cost-effective architecture has made it a preferred choice for devices like routers, Internet of Things (IoT) devices, and other edge computing solutions. The versatility of ARM architecture allows it to scale from low-power, single-core processors for simple tasks to high-performance, multi-core configurations for more demanding computing workloads. This scalability has enabled ARM processors to address a wide range of computing needs, making them a versatile and adaptable solution in today’s IT landscape.
ARM’s influence extends beyond the realm of consumer electronics and edge computing. With the emergence of cloud computing and data centers, ARM processors are gaining traction in this space as well. The energy efficiency of ARM architecture not only contributes to reduced operational costs but also aligns with the growing emphasis on sustainability in IT infrastructure. Major cloud providers have started incorporating ARM-based servers into their data centers, showcasing the increasing relevance of ARM processors in the broader landscape of computing. As the demand for computing power continues to diversify and evolve, ARM’s flexible architecture positions it as a significant player in shaping the future of IT.
Fugaku, currently the world’s fastest supercomputer, stands as a groundbreaking example of the potential of ARM architecture in high-performance computing. Developed by RIKEN and Fujitsu, Fugaku is a testament to the shift towards energy-efficient and highly scalable computing solutions.

Crafting an ARM architecture container image

Building containers for ARM architecture can pose challenges, primarily due to the prevalence of Intel and AMD architectures in the majority of computing environments. Several factors contribute to the complexities associated with developing software for ARM when the industry standard is predominantly (at the time of writing this blog post) Intel/AMD based.
Software developed for x86 (Intel/AMD) architecture may not seamlessly run on ARM-based systems due to differences in instruction sets and hardware architectures. Developers need to adapt their code to ensure compatibility, and this may involve significant modifications, especially if the software relies on architecture-specific optimizations.
In this section, we will guide you through the step-by-step process of creating a container image specifically designed to run on ARM architecture. Before we dive into the details, it’s essential to have a Singularity Container Services account which can be obtained following the steps described in this blog post. It is also possible to build an image using the graphical user interface or the SingularityCE/PRO command line interface.
Using the GUI is more comfortable for many people, in order to proceed in this mode, make sure the “arm64” architecture is selected, and then click the “Submit Build” button, the below screenshot shows the setting needed to do so.
Others, prefer to craft by using the command line, to do so, add the --arch arm64 argument to the build command like so:
$ singularity build --remote --arch arm64 alpine.sif alpine.def 
INFO:    Starting build...
INFO:    Setting maximum build duration to 1h0m0s
INFO:    Remote "cloud.sylabs.io" added.
INFO:    Access Token Verified!
INFO:    Token stored in /root/.singularity/remote.yaml
INFO:    Remote "cloud.sylabs.io" now in use.
INFO:    Starting build...
Getting image source signatures
Copying blob sha256:c3035249231...78e68397bb80fdbf
Copying config sha256:1021c2628...7ed234acf468145d
Writing manifest to image destination
2023/12/11 16:49:48  info unpack layer: sha256:c303524923177661...03dd52bb80fdbf
INFO:    Creating SIF file...
INFO:    Build complete: /tmp/image-3118116032
INFO:    Performing post-build operations
INFO:    Format for SBOM is not set or file exceeds maximum size for SBOM generation.
INFO:    Calculating SIF image checksum
INFO:    Uploading image to library...
WARNING: Skipping container verification
INFO:    Uploading 3272704 bytes
INFO:    Image uploaded successfully.
INFO:    Build complete: alpine.sif
When selecting a base image for your ARM Singularity container from Docker Hub, it is important to ensure compatibility with ARM architecture, as not all images on Docker Hub are designed for ARM-based systems. It is true they offer a diverse repository of container images, but it is crucial to choose one that aligns with the target architecture of your environment. For more information, please refer to the official documentation.

Conclusion

Venturing into the realm of ARM-optimized container images represents a strategic move for IT professionals and HPC enthusiasts alike. The adaptability and energy efficiency of ARM architecture make it a compelling choice for a wide array of applications. As industries continue to prioritize performance and sustainability, understanding how to create containerized solutions tailored for ARM is not just a valuable skill but a forward-looking investment in the future of computing. Embrace the ARM revolution, and unlock the potential of containerization on this innovative architecture.
In a dynamic landscape where technological innovation shapes the future of computing, our commitment to staying at the forefront has led us to a significant milestone. We are excited to announce that our software, once exclusively tailored for Intel/AMD architectures, now seamlessly supports ARM architecture. This strategic adaptation reflects our dedication to meeting the evolving needs of our users, ensuring that our solutions are not only cutting-edge but also versatile in the face of industry shifts.

Related Posts

OCI Basics using Singularity Enterprise Registry

Overview Singularity Enterprise comes with a fully compliant Open Container Initiative (OCI) registry. The following is a collection of typical registry operations within your workflow. Assuming the Singularity Enterprise registry address is registry.sylabs.io, please...

read more