High-throughput, low-latency passive copper cables and active optical cables play a vital role in high-performance computing, providing interconnections between the tens, hundreds, or even thousands of nodes in a high-performance computing cluster. To ensure high-performance message passing for applications such as data mining, electronic design automation, fluid dynamics, and weather analysis, manufacturers design their cables to meet protocol and physical layer specifications published by the InfiniBand® Trade Association.
Semiannual InfiniBand Plugfest events give cable manufacturers an opportunity to test their products for compliance with the specifications. Until recently, processing and analyzing all the RF data generated from these tests was time-consuming and arduous, and manufacturers often had to wait months to get their results.
At the most recent Plugfest, however, we provided test results in minutes. We did this using the S-Parameter Compliance Tool, which I developed in MATLAB® and RF Toolbox™, assisted by MathWorks consultants. The S-Parameter Compliance Tool automates many manual processing steps, calculates decibel loss and other performance metrics, and generates a comprehensive report in Microsoft® Excel® format with detailed results and graphs (Figure 1). I estimate that development time would have been five to 10 times longer without the built-in functionality provided by MATLAB and RF Toolbox.
Handling a Hundredfold Increase in Test Data Size
In the past, measurement data from InfiniBand Plugfest events was analyzed using MATLAB code written 10 years ago by engineers at the University of New Hampshire InterOperability Laboratory. The code was designed to test a single lane of the QSFP cables, but at times struggled to handle the data sets from the hundreds of cables tested during the Plugfests. Analyzing measurement data with this code required several manual steps. As a result, it could take 1–2 months to postprocess the results from a single Plugfest event.
Cables tested at recent InfiniBand Plugfest events consist of eight lanes, four in each direction, increasing the size of the data files by a factor of more than 100. A 32-port Keysight vector network analyzer (VNA) tests each cable, checking the interaction between 32 ports at 2600 frequencies and producing a matrix of 32 x 32 x 2600 results. A typical test generates about 150 MB of data compared with the 1.5 MB generated by single-lane testing.
My goal was to develop an application that could not only handle these vastly larger and more complex data sets but also deliver test results to manufacturers while they were at the event.
Coming Up to Speed with MATLAB
As a software engineer, I had extensive programming experience but no experience with MATLAB, and while I had worked with physical layer computer networking, there was a great deal I had to learn about working with RF measurement data. I considered several approaches, including trying to use Excel to perform the analysis, but decided to write the new application in MATLAB for three reasons. First, some of the IBTA specification limits were defined using expressions written in MATLAB, so I was able to incorporate these limits into the new application. Second, MATLAB and RF Toolbox had built-in functionality that would greatly simplify development. Third, MATLAB is widely used by engineers throughout the industry, including groups working on networking specifications.
I completed the three-day MathWorks Training course "MATLAB Fundamentals," in which I learned MATLAB basics by working through examples. For the specifics of manipulating RF data in MATLAB, I worked with a MathWorks engineer who provided both onsite training and remote follow-up support. The training shortened my learning curve considerably, enabling me to develop a full-featured application that is easy for other engineers to use.
The decision to use MATLAB proved to be a good one—I never encountered any problem that MATLAB was unable to solve.
Importing and Processing the Data
The first step was to import the roughly 150 MB of data from each s32p file generated by the Vector Network Analyzer. RF Toolbox made it easy to import the data directly into the MATLAB environment. I used RF Toolbox functions to convert the data into different formats. For example, I used
s2scc to convert single-ended S-parameters to differential-mode and common-mode S-parameters, respectively.
Once I had extracted the S-parameters from the file, it was straightforward to write MATLAB functions that calculate the decibel loss at each frequency referenced in the InfiniBand specification.
Formatting and Visualizing Results
After data processing, the application creates a formatted Excel file detailing all the test results (Figure 2). I chose to output results in Excel so that managers and engineers can easily see the data they are most interested in, from high-level, pass-fail results to low-level, lane-specific details. The spreadsheet provides the decibel loss results and other metrics, including the frequency that was closest to being out of spec and the difference between each measurement and the associated spec line. If a cable fails the test, the spreadsheet highlights the specific S-parameter involved. The engineer can then go directly to the associated chart and see by how much the measured result exceeded the limit.
The application generates dozens of graphs in both JPEG and MATLAB FIG-file format (Figure 3). Engineers can use MATLAB to zoom in on any part of the FIG-file version of a plot to view it in detail.
Most importantly, the application generates results in minutes, enabling engineers to analyze the results immediately. Manufacturers of active optical cables can potentially make adjustments to their products that same day and then retest the cables to see the effect of their changes.
A Standalone Application and Other Enhancements
When we tried out the S-Parameter Compliance Tool at an actual Plugfest event, it proved more than capable of handling all the RF measurement test data. I’ve since made a few enhancements, including adding support for the Channel Operating Margin (COM) test methodology pioneered by IEEE. I also added a command-line interface to make the application easier to use for batch processing.
I am now preparing to use MATLAB Compiler™ to package and encrypt the MATLAB code in order to release it as a standalone software package that can be run by engineers even if they don’t have MATLAB installed.