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

