Spectrum Instrumentation has created a Software Development Kit (SDK) for programming its full range of over 200 different digitizers, generators and digital I/O products using Julia.
A key feature of Julia is that it has been specifically designed for high-performance applications that require fast processing of data, like machine learning and scientific computing.
For example, libraries include optimized source C and Fortran code for linear algebra, random number generation, signal processing and even string processing. Furthermore, Julia offers parallelism.
Call the desired script with a given number of cores and parallelize directly from a command line. Additionally, it is possible to send tasks to different threads, or run loops in parallel, directly from code. The result is a language that offers similar speeds to C, while allowing coding that is more comparable to Python or MATLAB. Companies around the world use Julia in a wide range of applications.
Julia and Spectrum Instrumentation make a perfect fit as the Spectrum products are ideal for acquiring or generating the fast electronic signals found in AI applications or robotics. The company offers the most extensive range of digitizers for the acquisition of analogue or digital signals, in the DC to GHz frequency range, with high precision and dynamic range. The digitizers are complimented by an extensive line-up of high-resolution Arbitrary Waveform Generators (AWGs). These products are perfect for control signal generation, waveform replay and simulation. The products are available in a variety of form factors including tiny PCIe cards, which can plug directly into a PC, or LXI boxes that connect to a network or PC via Ethernet, plus PXIe modules for off-the-shelf installation into automated test systems.
Combining Julia with Spectrum Instrumentation products also helps to speed up processing and reduce latency. The Spectrum products offer ultrafast data transfers with a variety of different acquisition and generation modes (such as single, multiple, gated and FIFO) which helps to optimize testing throughputs.
It is a key benefit for situations that require fast decision making and it is one of the reasons why Spectrum products can be found working in applications involving autonomous vehicles, robotics, drones, imaging devices, medical appliances and control systems. Their general-purpose design means they can also be used with almost any sensor (accelerometers, transducers, photo diodes, detectors, MEMS, etc.) that is commonly found in AI machines.
As an example, Dr. Josef Höffner from the Leibniz Institute for Atmospheric Physics in Germany develops high performance LIDAR (Light Detection and Ranging) systems to measure temperature and wind speed in the atmosphere. Now a Julia user, he says: “We perform complex data acquisition and control, with 30 high speed signals, using three Spectrum Instrumentation cards, operating in closed loop operation 24/7. Our laser makes 500 pulses per second and we have to calculate, in real time, what has to happen next and adjust the controls. For that we have to get the result quickly. That means fast electronics, fast evaluation and then fast control of the hardware. We have found Julia offers a unique combination of speed and dynamic programming, simplifying the software development.”