This is a preliminary description of what is, or will be, possible with
the the implementation of Meep which is available at http://nanohub.org.

This is potentially of interest to Meep newbies and to those who need to
run larger simulations which require a cluster, but don't have access to
such a cluster.


Please note that I am a Meep newbie.  The nanohub.org implementation may
be suitable for newbies, since it uses a web-form approach rather than
writing a CTL file.

Further to Alex McCleod's message of 2011-02-02:


http://article.gmane.org/gmane.comp.science.electromagnetism.meep.general/3958

he and his colleagues have created the "Molecular Foundry Photonics
Toolkit":

  http://nanohub.org/resources/photonicstk

This is one of over 100 "tools" which are available to anyone via
NanoHub.  To use it, you need to get a Nanohub account - and I had no
difficulty doing so, despite being an independent researcher from
Australia.  (This is a fine and generous example of US taxes at work!)

Once the account is set up, I could choose the "Molecular Foundry
Photonics Toolkit" (hereafter "PhotonicsTK") as one of my favourites.

Sidebar to get some gripes out of the way:

   Nanohub.org is a fully Web2.0 buzzword compatible site.  Everything
   has tags.  Every page seems to have thumbs up and thumbs down icons
   by which users "vote" about the merits of the page.  There's little
   documentation of the general use of the tools, or even of how much
   storage is normally allocated to each user (1GB, I think).  There
   are question forums, knowledge bases etc.  There's a message system
   within the site - yet I prefer to use ordinary email.  There are
   points for asking and answering questions.  I can gain 23 points for
   accepting an answer to a question I posed.  What are points for?  If
   I have 500 of them I can trade them for a T-shirt . . .   The
   question and discussion forum software generally chews multiple
   spaces and newlines (but not blank lines?) and tends to use
   proportional spaced fonts rather than a fixed width font - which
   screws up my attempts to format text clearly.  Every user gets their
   own blog - mine is http://nanohub.org/members/52939/blog and
   I will use it to point to the Meep-discuss list.  This is a
   professional site but it seems to be set up like a social network
   which might be suitable for motivationally challenged teenagers.
   Anyway, this game-like points stuff and the hip Web2.0 seems an odd
   thing to be associated with the ability to use sophisticated
   software such as Meep, on *clusters*.

I understand that Alex is planning an imminent upgrade to PhotonicsTK.
I understand this is an entirely volunteer effort.  So some of the
problems I mention below may be fixed soon.

Normally, Meep is used by either writing C++ code or by using the Scheme
interface: writing a .CTL file.  The PhotonicsTK doesn't allow either
approach.  Instead, the user fills in some forms and the system creates
a .CTL file.  The .CTL file is an output of the system - to be
potentially used with Meep on some other system.

The form interface also handles post-processing - so there's no need to
learn arcane commands for this or the exact requirements of a .CTL file.

The resulting "project", as I will call it, can then be simulated on a
single machine, or on a user-selected (I don't know the limit) number of
processors on the Coates or Rossmann clusters at Purdue University:

  http://www.rcac.purdue.edu/userinfo/resources/coates/
  http://www.rcac.purdue.edu/userinfo/resources/rossmann/

The Network for Computational Nanotechnology (NCN
http://www.ncn.purdue.edu ) who run NanoHub contributed to the purchase
of these clusters so NanoHub users around the world can run their
simulations on these new and impressive HPC facilities.  Sometimes the
simulation runs start immediately and finish within minutes.  Other
times, for the larger simulation runs, the queuing system may delay the
start of the run for an hour or two.  I had runs with 8 processors going
for 7 hours or so before they halted due to my storage limits - so it is
clear this system is capable of splitting the Meep simulation between 8
or probably more processors, each with, I guess up to 2GB of RAM.

Both these clusters use 10GB Ethernet.  Rossmann is newer and has fewer
nodes, but each node has more cores - 24 AMD cores, with 48 or 96GB RAM.

The disadvantages of this system include:

  No C++ or .CTL control of Meep.

  Potentially slow and tricky interface via a Java-based graphic
  console.

  1GB storage is likely to be inadequate for many projects, unless
  perhaps great care is taken.  This is for .h5 files and resulting
  PNG files and the like.  (The amount of RAM used in the simulation
  is apparently not constrained.)  I have written a "ticket" requesting
  more storage.

  I am not sure how easy it is to generate one project, and then
  to keep a copy of this and re-use it as the basis for another.
  Without this capability, each project would have to be generated
  from scratch - which would be slow and error-prone.  Also, there's
  no single text form of the things I put in via the forms.
  Theoretically everything I put in is in the resulting .CTL file -
  but if I can't get it to produce a .CTL file due to some error, then
  this doesn't help.

  Currently very minimal documentation.  There appears to be little or
  no docs on how the Nanohub system generates files in the user's
  storage space or how it works in general.

  Likewise, the PhotonicsTK has very minimal documentation.  The
  use of the form is not entirely intuitive.  For instance, the
  "Simulate" button is used for various purposes, including just
  creating a .CTL file, for running a full simulation, and then for
  later analysing the results of a simulation (using a separate
  NanoHub session).

  Currently, in my experience, none of the three examples work "out of
  the box" (without substantial modification) given the default 1GB
  storage limit.  I understand Alex is working on adding features and
  improving the examples and documentation soon.

The advantages include:

  Its free of charge to anyone, anywhere.

  User's can run jobs which require a lot of RAM and CPU power.  This
  is a big deal for people like me who have no institutional access to
  a cluster.

  The analysis, such as generating .PNGs and being able to view them
  in sequence, can be done separately from the simulation.  This can
  be done multiple times, I think, based on the one completed
  simulation run.

  There's a simple "WebDAV" based access to the user's storage space:
  https://nanohub.org/kb/tips/webdav . This works for all OSes and for
  WinXP, it is simple to use Windows Explorer to access the space
  pretty much like it is another local hard drive.  The WebDAV URLs
  which are used for this also work for displaying directory contents
  in a browser.  So in practice, it is easy to download files to the
  local PC - for instance a few hundred PNG files which show how the
  field changes over time.

  User's can create Meep simulations by filling in "web forms".
  Actually, they are form-like things which appear in a special
  Java-based in-browser console, which I find rather slow and
  difficult to use at times.  (This might be better for users
  closer to Purdue.)

  It is apparently possible to share one of these Java graphic
  console sessions with  someone else, which could be handy learning
  about Meep.

  There's no need to think about partitioning the simulation to
  run on multiple processors with MPI.  Somehow, Alex's code handles
  this.  The user simply selects which cluster to run it on, and
  chooses how many processors.


I have so far only partly succeeded in getting an example to work, by
reducing the resolution of the "Bowtie Cross Antenna" example from 0.5
to 0.25 voxels per nanometre.  I tried to make my own, fresh, and very
simple "New" project, and came unstuck with an error message which
doesn't suggest what I did wrong.

I won't attempt to write here "how to use it", since I wasn't very
successful and since an update is imminent.  I just wanted to mention
this on the list, because I think it is of potential interest to Meep
users, especially Newbies and the Cluster-less.

  - Robin


_______________________________________________
meep-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss

Reply via email to