What is Important for a ScanImage Acquisition System?

We get a lot of questions at Vidrio about the best system for running ScanImage. Of course, the best system is one that we’ve built and tested for you! We’re continuously testing new hardware to see what’s best. As part of that, we decided to perform a few tests with systems built in-house. Before we get to the results, let’s look at what’s important for running ScanImage.

  • ScanImage only requires Matlab, and does not depend upon any other Matlab toolboxes.
  • There are two other threads that run in parallel. One that transfers data from the digitizer, and another that streams data to disk. Thus, a 4 core processor is sufficient and optimal.
  • A vast majority of processing, however, is single-threaded.  Thus, high per-core performance is more important for our CPUs than the number of cores.
  • ScanImage needs fast read/write performance so the operating system (we use Windows 10) and MATLAB should be housed on a SSD or M.2 Drive.
  • Fast data storage is required to keep up with certain video streaming loads.  We suggest streaming acquisition data to a SSD or at least a RAID with HDD.
  • Storage capacity must be carefully considered to ensure that plenty of room is available for saving large data files.
  • We suggest at least 8 GB of RAM.

We set out to build a machine with the fastest single-threaded benchmark score, but with a palatable price tag.  Fortunately, the people over at cpubenchmark.net made this task trivial.  We decided on the i7- 4790K from Intel, which boasts a 4.0 GHz processor while also being relatively inexpensive.

Benchmarks

ScanImage will run on a variety of standard off-the-shelf systems but these offerings are not optimized for recording data from 2-photon microscopy experiments. For more demanding tasks, like recording activity small regions within 3D space ranging in number from hundreds to thousands (a new feature offered in ScanImage 2015), it is important to have a ScanImage-optimized system.

To compare builds, we used Matlab’s built-in bench function. The graph above shows the bench score for 7 different computers. Higher scores are better. Note that the computer with the i7- 4790K CPU tops the chart. With the Intel processors there is a general linear relationship between CPU clock rates and benchmark scores (see graph below). Our single AMD based computer performed the worst even though the processor runs at 4 GHz. Also, we noticed that the i7-5930K outperforms the i5-4690K in this test even though the two processors run at 3.5 GHz. This seems to be consistent with the idea that, for Scanimage, the computational throughput in a single thread is most important. The last graph shows the detailed scores from the bench function for each computer (see graph below). Although the i7-4790K has the best overall score, some of the processors are slightly faster in the fast fourier transform test.

Leave a reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.