:; A Parallel 802.11a PHY architecture using the MATLAB Distributed Computing Toolbox 

The IEEE 802.11 has an architecture with the higher layers interacting with the lower Link Layer and Physical layers when packets need to be sent from one station to another. Packets are sent from a higher layer to the lower MAC layer which then sends the bits over the PHY to the destination station. We aim to parallelize the PHY simulation of the 802.11 protocol to enable a speedup in the total operation in the presence of a cluster with higher number of working nodes.

 

MATLAB Simulation


We use the Matlab 802.11b PHY simulation model developed by Stuart McGarrity and freely available for public use at this location. A screenshot of the entire Simulink model is shown below.




802.11 has been designed to run sequentially, hence there are sections which can and cannot be parallelized. Trying to parallelize the entire algorithm will not result in an efficient parallel program. Our main goal is to have a parallel implementation of the 802.11a mechanism.

 

 

Our algorithmic approach towards writing and optimizing parallel code as we apply to our problem are:

 

  1. Identify computational hotspots.
  2. Partition the problem into smaller independent tasks.
  3. Identify communication requirements between such tasks.
  4. Agglomerate smaller tasks into larger tasks.
  5. Map tasks to actual processors.


Carrying out these simulations on the UCF High Performance Cluster (Stokes), we obtained some encouraging speedup results.


:; Interesting notes

While I had previously worked extensively on the 802.11 MAC protocol at a packet level, the focus of this work was at the PHY layer.  Going deep into the QPSK modulation technqiues, IFFT and FFT's and the other intricacies of the 802.11 model were really interesting. While there is obviously still a lot to learn, working on the physical layer was certainly a revelation. However, the best part of this working extensively with MATLAB and its Distributed Computing Toolbox (DCT). The DCT is an amazing tool with which MATLAB scripts can be run in parallel with an astonishing level of simplicity. Getting the DCT to work with the cluster was just the opposite though on the difficulty level. Numerous articles and links are available which talk about writing parallel programs in MATLAB, but there is an equal paucity of documentation with regards to submitting parallel jobs to the cluster computer and using available MATLAB workers.

Here are some tips and tricks in setting up the MATLAB DCT to work with the cluster. These steps were all figured out by the Stokes sysadmin Sergio Tafur and EE grad student Kishore Reddy who were kind enough to give me easy, step by step instructions. The very least I could do is document the numerous emails exchanged between us to enable future users an easy starting point.

The step-wise instructions to set up communication between a local MATLAB instance running the DCT and the cluster with parallel MATLAB workers are HERE.



















Web site contents © Copyright Zubair 2008, All rights reserved.