Good laptop for GR/USRP

We will (hopefully) be purchasing some new laptops specifically for use
with the USRP and wanted to get any recommendations on particularly good
machines to purchase or, failing that, what specs to focus on.

This is my present thinking - please correct any misconceptions I have:

  1. Dual core is probably a very good way to go, especially since our
    applications are going to involve a signal processing thread and a
    control thread.

  2. We want to get as much processor speed as we can get.

  3. Memory probably isn’t a huge concern. We will probably be getting 1GB
    of ram.

  4. In order to capture long data sequences, it would be nice to have a
    speedy throughput to the hard drive. What is a good solution here - as
    in what is a reasonable set up that is considerably faster than the
    run-of-the-mill hard drive and controller? (When all is said and done,
    we’ll live with what we get, this isn’t super important to us).

  5. What processors should I consider and/or avoid? My understanding is
    that GR leverages the advanced floating point capabilities of modern
    processors, but I have no idea which ones are particularly good or
    particularly bad.

  6. How much does the video card affect things? Does it affect non-GUI
    applications very much (as in, does GR use the processing capabilities
    of today’s video cards in any significant way for non-video
    processing?).

Thanks a lot!

Bahn William L Civ USAFA/DFCS wrote:

  1. We want to get as much processor speed as we can get.
    Yes

  2. Memory probably isn’t a huge concern. We will probably be getting 1GB
    of ram.
    It is, if you want to use a ramdisk. See note below.
    Also memory speed and cache size is important to gnuradio. Between each
    gnuradio block, data is put in small memory buffers.
    A too slow memory or too small cache will probably have a big impact on
    processing speed. I haven’ t benchmarked this though.

  3. In order to capture long data sequences, it would be nice to have a
    speedy throughput to the hard drive. What is a good solution here - as
    in what is a reasonable set up that is considerably faster than the
    run-of-the-mill hard drive and controller? (When all is said and done,
    we’ll live with what we get, this isn’t super important to us).
    If you can, get something with a real-world sequential read and write
    speed of over 32 MB/sec.
    32 MB/sec is the maximum datarate to and from the USRP.

If you can’t find a disk with this throughput, put in a whole lot of
ram. I regurlarly use big ramdisks when working with gnuradio.
They are allways fast enough and have allmost no processor load. After
use, you can then store the files permanently to disk.

Another option is using a notebook which supports an extra disk in a
bay. This way you can make a raid stripe-array.

Any way, get a big disk. You will get a lot of data.

  1. What processors should I consider and/or avoid? My understanding is
    that GR leverages the advanced floating point capabilities of modern
    processors, but I have no idea which ones are particularly good or
    particularly bad.
    I have good experience with athlon64. But I don’t know about core-duo.
    It is probably faster.
    Anyone?

  2. How much does the video card affect things? Does it affect non-GUI
    applications very much (as in, does GR use the processing capabilities
    of today’s video cards in any significant way for non-video
    processing?).
    At the moment, the videocard does not play a big role. It is only used
    for displaying the GUI, which does not need any special videocard.

I have been working on a gpgpu version of gnuradio which WILL use the
processing power of the videocard.
For some gnuradio blocks, the performance is very promising (FIR
filters) but for a lot of others the implementation is very difficult or
impossible or just doesn’t perform well (PLL, IIR, blocks with integer
and boolean code).
The problem is that combining gpgpu and non-gpgpu blocks gives a
performance penalty due to the copying of data back and fourth between
the
host-memory and the videocard memory through the PCIe or AGP bus.
As videocards get more and more capabilities, and the API to the
videocard is expanded (nvidia CUDA and ATI CTM) I suspect that at some
point it
will be possible to develop a gnuradio version whcih would run for the
most part in the videocard.
But this will not be in the near future, so I wouldn’t spend a lot of
money on a videocard in a notebook for gnuradio now.

  1. Test the usb throughput of the notebook. Not all chipsets, even from
    modern computers, will sustain 32 MB/sec in real-world applications.
    Benchmarks are hard to find about this on the internet. The best way to
    know is to test it yourself or ask people here on the list on their
    experiences.
    Anyone?

I hope this helps.

Greetings,
Martin Dudok van Heel

Bahn William L Civ USAFA/DFCS wrote:

We will (hopefully) be purchasing some new laptops specifically for use
with the USRP and wanted to get any recommendations on particularly good

Bill,

I’m going through the same decision now. When it comes to processors,
probably more important to compile your blocks with the appropriate
optimizations for your processors e.g. “-msse2”.

I don’t think GR uses the GPU (video card), but I intend to modify one
of my blocks to use GPUFFTW which does.

Chris

Bahn William L Civ USAFA/DFCS wrote:

We will (hopefully) be purchasing some new laptops specifically for use
with the USRP and wanted to get any recommendations on particularly good
machines to purchase or, failing that, what specs to focus on.

This is my present thinking - please correct any misconceptions I have:

  1. Dual core is probably a very good way to go, especially since our
    applications are going to involve a signal processing thread and a
    control thread.

I just started using a Pentium D 940-based dual-core system for my radio
astronomy work.
I’m happy with it, but it’s not a laptop. Eventually, Gnu Radio will
support multi-threading
for processing blocks that are particularly expensive, I think, which
will be much more useful
on multi-core CPUs. Currently I think only the signal processing and
Gui chains are in different
threads, but that’s a start…

  1. We want to get as much processor speed as we can get.

Laptops usually lag desktops in raw clock rate. You want something with
a manly cache.
My Celeron D machine at 2.95Ghz was unable to keep up with 8Mhz radio
astronomy
processing, but my dual-core Pentium D 940 with 2M cache per core
machine is easily able to
keep up with 8Mhz radio astronomy work without any USRP overruns.

  1. Memory probably isn’t a huge concern. We will probably be getting 1GB
    of ram.

Double that and you’ll likely be happier. The virtual size of Gnu Radio
applications is
quite large, and the working set size is also surprising.

  1. In order to capture long data sequences, it would be nice to have a
    speedy throughput to the hard drive. What is a good solution here - as
    in what is a reasonable set up that is considerably faster than the
    run-of-the-mill hard drive and controller? (When all is said and done,
    we’ll live with what we get, this isn’t super important to us).

Disks I can’t comment on. Laptop drives tend to be slower than their
desktop
buddies.

  1. What processors should I consider and/or avoid? My understanding is
    that GR leverages the advanced floating point capabilities of modern
    processors, but I have no idea which ones are particularly good or
    particularly bad.

Avoid small-cache processors. But if you’re going dual-core, you’ll be
getting something
with much more cache than the 256K in the Celeron D.

  1. How much does the video card affect things? Does it affect non-GUI
    applications very much (as in, does GR use the processing capabilities
    of today’s video cards in any significant way for non-video
    processing?).

Thanks a lot!

Gnu Radio doesn’t (yet) leverage the computing capabilities of the
graphics card. Garden-variety
graphics cards are just fine–that’s what I use for radio astronomy
stuff.

It would be good to see benchmarks of the blocks that dominate
receivers on various processors. I think for our 802.11 receiver the
most time went to FIR filters.

You didn’t specify if your workload was floating point or integer; I
suspect that the chip with best performance will be different.

  1. Memory probably isn’t a huge concern. We will probably be getting
    1GB
    of ram.

Maybe that’s enough, but I wouldn’t buy a machine with < 2 GB for any
purpose today.

You didn’t mention the USRP bandwidth you want, but I’ll guess that
you’ll be maxed out at 32 MB/s. Intel EHCI chips work well, and I
have the impression that many other implementations do not.

Perhaps obvious, but hardware reliability and having the devices
supported by the OS you are going to run, without binary drivers, is
also in general important.

I am using a Thinkpad T60 with Core Duo T2300:
cpu0: Intel Pentium M (Yonah) (686-class), 2161.46 MHz, id 0x6e8
cpu0: “Genuine Intel® CPU T2600 @ 2.16GHz”
cpu0: I-cache 32 KB 64B/line 8-way, D-cache 32 KB 64B/line 8-way
cpu0: L2 cache 2 MB 64B/line 8-way
cpu0: using thermal monitor 1

There is L2 cache, but I don’t have that handy.

Now you can get T60s with Core 2 Duos.

With the 100 GB disk that came with the T60, I get 39 MB/s raw
read rate (at the beginning), and I think write is similar. I have
more RAM than free disk space so can’t benchmark writing reasonably.

An external disk may well be faster, but typically you’d use USB and
I’m not sure the controller can deal with that at the same time as the
USRP and max them both out. You might consider some sort of
network-attached storage - I’m unclear on your portability/cost
requirements.

What data rate do you need to sustain?

Eric has an X60 that he’s been happy with.

If you’re going to run GNU Radio semi-constantly on laptops, I bet
you’re going to have grief from too much heat. If so, get a 3-yr
warranty (e.g. Thinkpad) and install them with risers for good
airflow. The T60 is a lot better in this regard than the T30 I had
before, which ran very hot, and in which the video card failed after
3.5 years (of very hard and frequent use, so I was happy overall).

Probably won’t come as a surprise to those who know me, but we have
used MacBook Pro’s with good results. While I’ve never tried, in
theory a MacBook (not Pro) could also suffice, since internally it’s
about the same as the Intel iMac, of which we also have a number
running GNU Radio at full USB speeds.

Various benefits of either a MacBook or MB Pro (or iMac):

  • You can run OSX, WIndows, Linux / *BSD, or combinations of these
    via Virtual Machine(s). My preference is OSX with a Linux (Ubuntu
    for now) VM. Very handy for checking correct functionality of my GR
    programming.

  • Intel Core-2 Duo w/ good L1/L2/L3 cache. Get 2 GB of DRAM (as 2x 1
    GB). Comes with a decent hard drive, but if speed is what you need
    then adding a FireWire 800 drive or array will get you plenty more
    than 32 MBps of sustained r/w throughput.

  • “reasonable” cost given the expected life-span and versatility of
    the computer.

  • Doubles (easily) as a desktop machine in power, portable for
    presentations and demos. This is especially true for the MacBook
    (not Pro), at a mere roughly 5 pounds.

If you can wait another month or so, you can probably get the next
generation laptop, which will likely come with the “hybrid” hard
drive which includes a large flash cache to speed things up much
further. My US$0.02. - MLD

One you may not have considered is Apple’s Macbook Pro.
You can keep Mac OS X or dual boot to Linux.

USB performance is good but the MBP also has Firewire
so you can attach a huge RAID if you want and get quite
a lot of disk bandwidth without taking any from USB.

Mac OS X has some interesting features that allow use
of the graphics processor for computational taskes.
The core image dev kits makes this mostly painless
but of course this is not portable to other OSes.

Mac OS is really just BSD UNIX and the Mac’s kernel
is open source. Because you are buying the OS and
the hardware from one company you can be sure you
are getting drivers for all the hardware.

Latley I’ve been thinking that Apple makes the best
UNIX desktop system on the market.

Chris Albertson
Home: 310-376-1029 [email protected]
Office: 310-336-5189 [email protected]


Don’t pick lemons.
See all the new 2007 cars at Yahoo! Autos.
http://autos.yahoo.com/new_cars.html