:; 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:
Identify computational hotspots.
Partition the problem into
smaller independent tasks.
Identify communication
requirements between such tasks.
Agglomerate smaller tasks into
larger tasks.
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.