Software development tools as force multipliers
Situational awareness often requires data center processing speeds in the smallest possible package. The sensors that feed signal and image processing systems siphon up masses of data, which processors must then reduce to useful information within tactical timelines.
Code hosted on multicore, multiprocessor boards used in these compact signal processing systems is complex and multithreaded, reflecting the intricacies of the host systems and the time constraints of the computing operations. In addition, software must be delivered within the tightest possible deadlines at the lowest possible cost. Ongoing and proposed military budget cuts will increase pressure on program schedules and resources, thus making technology more important as a force multiplier.
Software hosted on these High Performance Embedded Computing (HPEC) platforms, furthermore, must be effective, efficient, and “open” for maximum flexibility, portability, and affordability. Fortunately, developers have been able to marry openness and performance for military systems by leveraging the rock-solid, free, and readily available software and hardware standards used in data centers. Among the software standards borrowed from this world are the Open Message Passing Interface (Open MPI) and OpenFabrics Enterprise Distribution – or OFED – middleware.
Programming signal and image processing software applications intended for today’s most advanced multiprocessor and multicore embedded environments would be difficult without today’s software tools. These frameworks, provided by embedded system development companies, include libraries of vector math and Digital Signal Processing (DSP) functions that can help developers construct algorithms from predefined building blocks, graphical visualization tools, code generation and distribution modules, and interprocessor communications optimizers.
Toolkits hosted on multiple “starter systems” include both the software construction aids and non-militarized versions of intended circuit boards so that applications can be tested on the chips and boards intended for the weapons system. The software tools help developers construct the applications, map the applications to the hardware, and wed the code to the architecture of the system. The tools help programmers to use the integrated circuits – whether the latest multicore Central Processing Units (CPUs) or the newest highly parallel General Purpose Graphics Processing Units (GPGPUs) – as efficiently as possible, minimizing development time and ensuring the tightest Size, Weight, and Power (SWaP) tradeoffs.
These software development toolkits enable developers to describe applications as a series of tasks and then set up the data flows between the tasks. Libraries of high-level math and DSP functions free programmers from low-level details so that they can focus on higher-level functions like the Fastest Fourier Transform in the West (FFTW) and data-movement libraries such as Open MPI and Data Distribution Service (DDS).
As algorithms are assembled and code is auto-generated, designers can monitor the real-time execution of software modules, visualize the behavior and interaction of different processes, and tweak performance accordingly. Developers can see the data flows, discover the bottlenecks, diagnose the bugs, and find the timing glitches in order to optimize software before porting it to the target platform.
Like OFED, MPI was developed for the supercomputing world, where communications between processes must be lightning-fast. Equally important, MPI and other data center standards are backed by huge government laboratories and computer companies. Thus, developers of embedded systems can build upon standards developed in the crucible of supercomputing environments and enjoy the fruits without paying the costs.
Military customers require the best hardware and software for the troops – and they want it yesterday. Software development toolkits help to make it possible by accelerating productivity and producing code that has been well-structured and well-tested before it is ultimately incorporated into the platform.
An example of an HPEC application development toolkit is the GE Intelligent Platforms Advanced Multiprocessor Integrated Software (AXIS) environment (see Figure 1). The latest version, AXISPro 6.0, supports Open MPI as well as the latest fourth-generation Intel Core i7 chips, multicore Freescale processors, and parallel NVIDIA GPGPU platforms.