diff --git a/doc/bgl.report/report.tex b/doc/bgl.report/report.tex
index 3f6377510e6554a0f1d4aee1bc5ef1c397ff080a..f28a30cf74e205104a8e3ffad6d10b884dd78ccf 100644
--- a/doc/bgl.report/report.tex
+++ b/doc/bgl.report/report.tex
@@ -93,11 +93,11 @@
 % Abstract itself - 10pt
 \noindent\normalsize
 The Blue Gene/L (BGL) system is a highly scalable computer developed 
-by IBM for Lawrence Livermore National Laboratory (LLNL). 
+by IBM and deployed Lawrence Livermore National Laboratory (LLNL). 
 The current system has over 131,000 processors interconnected by a 
 three-dimensional toroidal network with complex rules for managing 
 the network and allocating resources to jobs.
-We selected SLURM (Simple Linux Utility for Resource Management ) to 
+SLURM (Simple Linux Utility for Resource Management ) was selected to 
 fulfull this role. 
 SLURM is an open source, fault-tolerant, and highly scalable cluster 
 management and job scheduling system in widespread use on Linux clusters.
@@ -119,10 +119,11 @@ management for BGL and preliminary performance results.
 
 \section{Overview}
 
-The Blue Gene/L system offers a unique cell-based design in which 
-the capacity can be expanded without introducing bottlenecks.
+The BlueGene/L (BGL) system offers a unique cell-based design in which 
+the capacity can be expanded without introducing bottlenecks 
+\cite{BlueGeneWeb,BlueGeneL2002}.
 The Blue Gene/L system delivered to LLNL consists of 
-131,072 processors and 16TB of memory.  
+131,072 processors and 33TB of memory \cite{BlueGene2002}.  
 The peak computational rate will exceed 360 TeraFLOPs.
 
 Simple Linux Utility for Resource Management (SLURM)\footnote{A tip of 
@@ -130,14 +131,14 @@ the hat to Matt Groening and creators of {\em Futurama},
 where Slurm is the most popular carbonated beverage in the universe.} 
 is a resource management system suitable for use on both small and 
 very large clusters. 
-SLURM was jointly developed by Lawrence Livermore National Laboratory
-(LLNL) and Linux NetworX. 
+SLURM was developed by Lawrence Livermore National Laboratory
+(LLNL), Linux NetworX and HP. 
 It has been deployed on hundreds of Linux clusters world-wide and has 
 proven both highly reliable and highly scalalble.
 
 \section{Architecture of Blue Gene/L}
 
-The basic building-blocks of Blue Gene/L are c-nodes. 
+The basic building-blocks of BGL are c-nodes. 
 Each c-node consists
 of two processors based upon the PowerPC 550GX, 512 MB of memory 
 and support for five separate networks on a single chip.
@@ -147,7 +148,7 @@ Alternately, both processors may be used for computations.
 These c-nodes are subsequently grouped into base partitions, each consisting 
 of 512 c-nodes in an eight by eight by eight array with the same 
 network support.
-The Blue Gene/L system delivered to LLNL consists of 128 base 
+The BGL system delivered to LLNL consists of 128 base 
 partitions organized in an eight by four by four array.
 The minimal resource allocation unit for applications is one 
 base partition so that at most 128 simultaneous jobs may execute. 
@@ -156,7 +157,7 @@ The c-nodes execute a custom micro-kernel.
 System calls that can not directly be processed by the c-node 
 micro-kernel are routed to one of the systems I/O nodes. 
 There are 1024 I/O nodes running the Linux operating system, 
-each of which services the requests from 64 c-nodes.
+each of which service the requests from 64 c-nodes.
 
 Three distinct communications networks are supported: 
 a three-dimensional torus with direct nearest-neighbor connections;
@@ -166,15 +167,21 @@ The torus network connects each node to
 its nearest neighbors in the X, Y and Z directions for a 
 total of six of these connections for each node. 
 
+Only parallel user applications execute on the c-node. 
+BGL has eight front-end nodes for other user tasks. 
+Users can login to the front-end nodes, compile and 
+launch parallel applications. Front-end nodes can also
+be used for pre- and post-processing of data files.
 
-Service node, Front-end-node.
+BGL system administrative functions are performed on a 
+computer known as the service node, which also maintains 
+a DB2 database used for many BGL management functions.
 
-Mesh vs. Torus.
-Wiring rules.
+TO DO: Mesh vs. Torus.  Wiring rules.
 
-Overhead of starting a new job (e.g. reboot nodes).
-Etc.
-Be careful not to use non-public information (don't use 
+TO DO: Overhead of starting a new job (e.g. reboot nodes).
+
+NOTE: Be careful not to use non-public information (don't use 
 information directly from the "IBM Confidential" documents).
 
 \section{Architecture of SLURM}
@@ -182,7 +189,7 @@ information directly from the "IBM Confidential" documents).
 Only a brief description of SLURM architecture and implemenation is provided 
 here. 
 A more thorough treatment of the SLURM design and implementation is 
-available \cite{SLURM2002}.
+available from several sources \cite{SLURM2003,SlurmWeb}.
 
 Several SLURM features make it well suited to serve as a resource manager 
 for Blue Gene/L.
@@ -190,7 +197,7 @@ for Blue Gene/L.
 \begin{itemize}
 
 \item {\tt Scalability}: 
-The SLURM daemons are multi-threaded with independent read and write 
+The SLURM daemons are highly parallel  with independent read and write 
 locks on the various data structures. 
 SLURM presently manages several Linux clusters with over 1000 nodes 
 and executes full-system parallel jobs on these systems in a few seconds.
@@ -204,7 +211,7 @@ permits a variety of different infrastructures to be easily supported.
 The SLURM configuration file specifies which set of plugin modules 
 should be used. 
 For example, plugins are used for interfacing with different authentication 
-mechanisms and node interconnects.
+mechanisms and interconnects.
 
 \item {\tt Fault Tolerance}: SLURM can handle a variety of failure
 modes without terminating workloads, including crashes of the node
@@ -310,27 +317,24 @@ identifies the directory in which to find the plugin.
 
 \section {Blue Gene/L Specific Resource Management Issues}
 
-Several issues needed to be addressed for SLURM to support BGL:
-pseudo-nodes representing the base partitions, topology, 
-\slurmd\ executing only on the front-end-node, 
-BGL wiring issues and use of the BGL-specific APIs.
-BGL wiring issues are extensive and addressed in a separate section.
-
 Since a BGL base partition is the minimum allocation unit for a job, 
 it was natural to consider each one as an independent SLURM node. 
 This meant SLURM would manage a very reasonable 128 nodes 
 rather than tens of thousands of individual c-nodes.
-The \slurmd\ daemon was designed to execute on each SLURM 
-nodes to monitor the status of that node, launch job steps, etc. 
+The \slurmd\ daemon was originally designed to execute on each 
+SLURM node to monitor the status of that node, launch job steps, etc. 
 Unfortunately BGL prohibited the execute of SLURM daemons within 
 the base partitions on any of the c-nodes. 
-SLIURM forced to execute one \slurmd\ for the entire BGL system 
-on a front-end node.
+SLURM was compelled to execute \slurmd\ on one or more 
+front-end nodes.
 In addition,  the typical Unix mechanism used to interact with a 
-compute host do not function with BGL base partitions. 
+compute host (e.g. getting memory size or processor count) do not 
+function normally with BGL base partitions. 
 This issue was addressed by adding a SLURM parameter to 
 indicate when it is running with a front-end node, in which case 
 there is assumed to be a single \slurmd\ for the entire system. 
+We anticipate changing this in the future to support multiple 
+\slurmd\ daemons on the front-end nodes.
 
 SLURM was originally designed to address a one-dimensional topology
 and this impacted a variety of areas from naming convensions to 
@@ -342,7 +346,7 @@ SLURM addresses this by using regular expressions to indicate
 ranges of node names. 
 For example, "linux[0-1023]" was used to represent 1024 nodes 
 with names having a prefix of "linux" and a numeric suffic ranging 
-from "0" to "1023". 
+from "0" to "1023" (e.g. "linux0" through "linux1023"). 
 The most reasonable way to name the BGL nodes seemed to be 
 using a three digit suffix, but rather than indicate a monotonically 
 increasing number, each digit would represent the base partition's 
@@ -391,8 +395,7 @@ opaque data type.
 Since these new data types are unused on non-BGL systems, the 
 functions to manage them perform no work. 
 Other computers with other topology requiremens will be able to 
-take advantage of this plugin infrastructure as well with minimal 
-effort.
+take advantage of this plugin infrastructure with minimal effort.
 
 In order to provide users with a clear view of the BGL topology, a new 
 tools was developed.
@@ -426,10 +429,6 @@ a script.
 The job will initiate its parallel tasks through the use of {\em mpirun}.
 {\em mpirun} uses BGL-specific APIs to launch and manage the 
 tasks. 
-An additional benefit of this architecture is that the single \slurmd\ 
-for the entire system is relieved of job step management, which 
-could involve a significant amount of overhead for a computer 
-of BGL's size. 
 We disabled SLURM's job step support for normal users to 
 mitigate the possible impact of users inadvertently attempting 
 to initiate job steps through SLURM.
diff --git a/doc/bgl.report/splncs.bst b/doc/bgl.report/splncs.bst
new file mode 100644
index 0000000000000000000000000000000000000000..096949614c3bf77c6b4ba5c173d2ba9e2eacd86e
--- /dev/null
+++ b/doc/bgl.report/splncs.bst
@@ -0,0 +1,1080 @@
+% BibTeX bibliography style `splncs'
+
+% An attempt to match the bibliography style required for use with
+% numbered references in Springer Verlag's "Lecture Notes in Computer
+% Science" series.  (See Springer's documentation for llncs.sty for
+% more details of the suggested reference format.)  Note that this
+% file will not work for author-year style citations.
+
+% Use \documentclass{llncs} and \bibliographystyle{splncs}, and cite
+% a reference with (e.g.) \cite{smith77} to get a "[1]" in the text.
+
+% Copyright (C) 1999 Jason Noble.
+% Last updated: Thursday 20 May 1999, 13:22:19
+%
+% Based on the BibTeX standard bibliography style `unsrt'
+
+ENTRY
+  { address
+    author
+    booktitle
+    chapter
+    edition
+    editor
+    howpublished
+    institution
+    journal
+    key
+    month
+    note
+    number
+    organization
+    pages
+    publisher
+    school
+    series
+    title
+    type
+    volume
+    year
+  }
+  {}
+  { label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence
+           after.block after.authors between.elements}
+
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+  #1 'mid.sentence :=
+  #2 'after.sentence :=
+  #3 'after.block :=
+  #4 'after.authors :=
+  #5 'between.elements :=
+}
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull}
+{ 's :=
+  output.state mid.sentence =
+    { " " * write$ }
+    { output.state after.block =
+        { add.period$ write$
+          newline$
+          "\newblock " write$
+        }
+        {
+          output.state after.authors =
+          { ": " * write$
+            newline$
+            "\newblock " write$
+          }
+          { output.state between.elements =
+              { ", " * write$ }
+              { output.state before.all =
+                   'write$
+                  { add.period$ " " * write$ }
+                  if$
+              }
+              if$
+          }
+          if$
+        }
+      if$
+      mid.sentence 'output.state :=
+    }
+  if$
+  s
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+    'pop$
+    'output.nonnull
+  if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+  duplicate$ empty$
+    { pop$ "empty " t * " in " * cite$ * warning$ }
+    'output.nonnull
+  if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+  "\bibitem{" write$
+  cite$ write$
+  "}" write$
+  newline$
+  ""
+  before.all 'output.state :=
+}
+
+FUNCTION {fin.entry}
+{ write$
+  newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+    'skip$
+    { after.block 'output.state := }
+  if$
+}
+
+FUNCTION {stupid.colon}
+{ after.authors 'output.state := }
+
+FUNCTION {insert.comma}
+{ output.state before.all =
+    'skip$
+    { between.elements 'output.state := }
+  if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+    'skip$
+    { output.state before.all =
+        'skip$
+        { after.sentence 'output.state := }
+      if$
+    }
+  if$
+}
+
+FUNCTION {not}
+{   { #0 }
+    { #1 }
+  if$
+}
+
+FUNCTION {and}
+{   'skip$
+    { pop$ #0 }
+  if$
+}
+
+FUNCTION {or}
+{   { pop$ #1 }
+    'skip$
+  if$
+}
+
+FUNCTION {new.block.checka}
+{ empty$
+    'skip$
+    'new.block
+  if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+  swap$ empty$
+  and
+    'skip$
+    'new.block
+  if$
+}
+
+FUNCTION {new.sentence.checka}
+{ empty$
+    'skip$
+    'new.sentence
+  if$
+}
+
+FUNCTION {new.sentence.checkb}
+{ empty$
+  swap$ empty$
+  and
+    'skip$
+    'new.sentence
+  if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+    { pop$ "" }
+    'skip$
+  if$
+}
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+    { pop$ "" }
+    { "" swap$ * "" * }
+  if$
+}
+
+FUNCTION {bold}
+{ duplicate$ empty$
+    { pop$ "" }
+    { "\textbf{" swap$ * "}" * }
+  if$
+}
+
+FUNCTION {parens}
+{ duplicate$ empty$
+    { pop$ "" }
+    { "(" swap$ * ")" * }
+  if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.springer.names}
+{ 's :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr "{vv~}{ll}{, jj}{, f{.}.}" format.name$ 't :=
+      nameptr #1 >
+        { namesleft #1 >
+            { ", " * t * }
+            { numnames #1 >
+                { ", " * }
+                'skip$
+              if$
+              t "others" =
+                { " et~al." * }
+                { "" * t * }
+              if$
+            }
+          if$
+        }
+        't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+
+FUNCTION {format.names}
+{ 's :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't :=
+      nameptr #1 >
+        { namesleft #1 >
+            { ", " * t * }
+            { numnames #2 >
+                { "," * }
+                'skip$
+              if$
+              t "others" =
+                { " et~al." * }
+                { " \& " * t * }
+              if$
+            }
+          if$
+        }
+        't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+    { "" }
+    { author format.springer.names }
+  if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+    { "" }
+    { editor format.springer.names
+      editor num.names$ #1 >
+        { ", eds." * }
+        { ", ed." * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+    { "" }
+    { title "t" change.case$ }
+  if$
+}
+
+FUNCTION {n.dashify}
+{ 't :=
+  ""
+    { t empty$ not }
+    { t #1 #1 substring$ "-" =
+        { t #1 #2 substring$ "--" = not
+            { "--" *
+              t #2 global.max$ substring$ 't :=
+            }
+            {   { t #1 #1 substring$ "-" = }
+                { "-" *
+                  t #2 global.max$ substring$ 't :=
+                }
+              while$
+            }
+          if$
+        }
+        { t #1 #1 substring$ *
+          t #2 global.max$ substring$ 't :=
+        }
+      if$
+    }
+  while$
+}
+
+FUNCTION {format.date}
+{ year empty$
+   { "there's no year in " cite$ * warning$ }
+    'year
+  if$
+}
+
+FUNCTION {format.btitle}
+{ title emphasize
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+    { "~" }
+    { " " }
+  if$
+  swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+    'pop$
+    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+  if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+    { "" }
+    { "Volume" volume tie.or.space.connect
+      series empty$
+        'skip$
+        { " of " * series emphasize * }
+      if$
+      add.period$
+      "volume and number" number either.or.check
+    }
+  if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+    { number empty$
+        { series field.or.null }
+        { output.state mid.sentence =
+            { "number" }
+            { "Number" }
+          if$
+          number tie.or.space.connect
+          series empty$
+            { "there's a number but no series in " cite$ * warning$ }
+            { " in " * series * }
+          if$
+        }
+      if$
+    }
+    { "" }
+  if$
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+    { "" }
+    { output.state mid.sentence =
+        { edition "l" change.case$ " edn." * }
+        { edition "t" change.case$ " edn." * }
+      if$
+    }
+  if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+  #0 'multiresult :=
+    { multiresult not
+      t empty$ not
+      and
+    }
+    { t #1 #1 substring$
+      duplicate$ "-" =
+      swap$ duplicate$ "," =
+      swap$ "+" =
+      or or
+        { #1 'multiresult := }
+        { t #2 global.max$ substring$ 't := }
+      if$
+    }
+  while$
+  multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+    { "" }
+    { pages multi.page.check
+        { "" pages n.dashify tie.or.space.connect }
+        { "" pages tie.or.space.connect }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.vol}
+{ volume bold
+}
+
+FUNCTION {pre.format.pages}
+{ pages empty$
+    'skip$
+    { duplicate$ empty$
+        { pop$ format.pages }
+        { " " * pages n.dashify * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+    'format.pages
+    { type empty$
+        { "chapter" }
+        { type "l" change.case$ }
+      if$
+      chapter tie.or.space.connect
+      pages empty$
+        'skip$
+        { " " * format.pages * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+    { "" }
+    { editor empty$
+        { "In: " booktitle emphasize * }
+        { "In " format.editors * ": " * booktitle emphasize * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+  month empty$ year empty$ note empty$
+  and and and and and
+    { "all relevant fields are empty in " cite$ * warning$ }
+    'skip$
+  if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+    'skip$
+    { pop$
+      type "t" change.case$
+    }
+  if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+    { "Technical Report" }
+    'type
+  if$
+  number empty$
+    { "t" change.case$ }
+    { number tie.or.space.connect }
+  if$
+}
+
+FUNCTION {format.article.crossref}
+{ key empty$
+    { journal empty$
+        { "need key or journal for " cite$ * " to crossref " * crossref *
+          warning$
+          ""
+        }
+        { "In {\em " journal * "\/}" * }
+      if$
+    }
+    { "In " key * }
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}
+{ editor #1 "{vv~}{ll}" format.name$
+  editor num.names$ duplicate$
+  #2 >
+    { pop$ " et~al." * }
+    { #2 <
+        'skip$
+        { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+            { " et~al." * }
+            { " and " * editor #2 "{vv~}{ll}" format.name$ * }
+          if$
+        }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+      "In "
+    }
+    { "Volume" volume tie.or.space.connect
+      " of " *
+    }
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+  editor field.or.null author field.or.null =
+  or
+    { key empty$
+        { booktitle empty$
+            { "need editor, key, or booktitle for " cite$ * " to crossref " *
+              crossref * warning$
+              ""
+            }
+            { "" }
+          if$
+        }
+        { "" }
+      if$
+    }
+    { "" }
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {and.the.note}
+{ note output
+  note empty$
+     'skip$
+     { add.period$ }
+  if$
+}
+
+FUNCTION {article}
+{ output.bibitem
+  format.authors "author" output.check
+  stupid.colon
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    { journal emphasize "journal" output.check
+      format.vol output
+      format.date parens output
+      format.pages output
+    }
+    { format.article.crossref output.nonnull
+      format.pages output
+    }
+  if$
+  and.the.note
+  fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check }
+    { format.authors output.nonnull
+      crossref missing$
+        { "author and editor" editor either.or.check }
+        'skip$
+      if$
+    }
+  if$
+  stupid.colon
+  format.btitle "title" output.check
+  new.sentence
+  crossref missing$
+    { format.edition output
+      format.bvolume output
+      new.block
+      format.number.series output
+      new.sentence
+      publisher "publisher" output.check
+      address empty$
+         'skip$
+         { insert.comma }
+      if$
+      address output
+      format.date parens output
+    }
+    { format.book.crossref output.nonnull
+    }
+  if$
+  and.the.note
+  fin.entry
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+  format.authors output
+  stupid.colon
+  format.title "title" output.check
+  howpublished address new.block.checkb
+  howpublished output
+  address empty$
+     'skip$
+     { insert.comma }
+  if$
+  address output
+  format.date parens output
+  and.the.note
+  fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check }
+    { format.authors output.nonnull
+      crossref missing$
+        { "author and editor" editor either.or.check }
+        'skip$
+      if$
+    }
+  if$
+  stupid.colon
+  crossref missing$
+    { chapter output
+      new.block
+      format.number.series output
+      new.sentence
+      "In:" output
+      format.btitle "title" output.check
+      new.sentence
+      format.edition output
+      format.bvolume output
+      publisher "publisher" output.check
+      address empty$
+         'skip$
+         { insert.comma }
+      if$
+      address output
+      format.date parens output
+    }
+    { chapter output
+      new.block
+      format.incoll.inproc.crossref output.nonnull
+    }
+  if$
+  format.pages output
+  and.the.note
+  fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+  format.authors "author" output.check
+  stupid.colon
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      new.sentence
+      format.bvolume output
+      format.number.series output
+      new.block
+      format.edition output
+      publisher "publisher" output.check
+      address empty$
+         'skip$
+         { insert.comma }
+      if$
+      address output
+      format.date parens output
+      format.pages output
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.chapter.pages output
+    }
+  if$
+  and.the.note
+  fin.entry
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+  format.authors "author" output.check
+  stupid.colon
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      new.sentence
+      format.bvolume output
+      format.number.series output
+      address empty$
+        { organization publisher new.sentence.checkb
+          organization empty$
+             'skip$
+             { insert.comma }
+          if$
+          organization output
+          publisher empty$
+             'skip$
+             { insert.comma }
+          if$
+          publisher output
+          format.date parens output
+        }
+        { insert.comma
+          address output.nonnull
+          organization empty$
+             'skip$
+             { insert.comma }
+          if$
+          organization output
+          publisher empty$
+             'skip$
+             { insert.comma }
+          if$
+          publisher output
+          format.date parens output
+        }
+      if$
+    }
+    { format.incoll.inproc.crossref output.nonnull
+    }
+  if$
+  format.pages output
+  and.the.note
+  fin.entry
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+  author empty$
+    { organization empty$
+        'skip$
+        { organization output.nonnull
+          address output
+        }
+      if$
+    }
+    { format.authors output.nonnull }
+  if$
+  stupid.colon
+  format.btitle "title" output.check
+  author empty$
+    { organization empty$
+        { address new.block.checka
+          address output
+        }
+        'skip$
+      if$
+    }
+    { organization address new.block.checkb
+      organization output
+      address empty$
+         'skip$
+         { insert.comma }
+      if$
+      address output
+    }
+  if$
+  new.sentence
+  format.edition output
+  format.date parens output
+  and.the.note
+  fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  stupid.colon
+  format.title "title" output.check
+  new.block
+  "Master's thesis" format.thesis.type output.nonnull
+  school empty$
+     'skip$
+     { insert.comma }
+  if$
+  school "school" output.check
+  address empty$
+     'skip$
+     { insert.comma }
+  if$
+  address output
+  format.date parens output
+  and.the.note
+  fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+  format.authors "author" output.check
+  stupid.colon
+  format.title "title" output.check
+  howpublished new.block.checka
+  howpublished output
+  format.date parens output
+  and.the.note
+  fin.entry
+  empty.misc.check
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  stupid.colon
+  format.btitle "title" output.check
+  new.block
+  "PhD thesis" format.thesis.type output.nonnull
+  school empty$
+     'skip$
+     { insert.comma }
+  if$
+  school "school" output.check
+  address empty$
+     'skip$
+     { insert.comma }
+  if$
+  address output
+  format.date parens output
+  and.the.note
+  fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+  editor empty$
+    { organization empty$
+        { "" }
+        { organization output
+          stupid.colon }
+      if$
+    }
+    { format.editors output.nonnull
+      stupid.colon
+    }
+  if$
+  format.btitle "title" output.check
+  new.block
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      new.sentence
+      format.bvolume output
+      format.number.series output
+      address empty$
+        { organization publisher new.sentence.checkb
+          organization empty$
+             'skip$
+             { insert.comma }
+          if$
+          organization output
+          publisher empty$
+             'skip$
+             { insert.comma }
+          if$
+          publisher output
+          format.date parens output
+        }
+        { insert.comma
+          address output.nonnull
+          organization empty$
+             'skip$
+             { insert.comma }
+          if$
+          organization output
+          publisher empty$
+             'skip$
+             { insert.comma }
+          if$
+          publisher output
+          format.date parens output
+        }
+      if$
+    }
+    { format.incoll.inproc.crossref output.nonnull
+    }
+  if$
+  and.the.note
+  fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+  format.authors "author" output.check
+  stupid.colon
+  format.title "title" output.check
+  new.block
+  format.tr.number output.nonnull
+  institution empty$
+     'skip$
+     { insert.comma }
+  if$
+  institution "institution" output.check
+  address empty$
+     'skip$
+     { insert.comma }
+  if$
+  address output
+  format.date parens output
+  and.the.note
+  fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+  format.authors "author" output.check
+  stupid.colon
+  format.title "title" output.check
+  new.block
+  note "note" output.check
+  format.date parens output
+  fin.entry
+}
+
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"January"}
+
+MACRO {feb} {"February"}
+
+MACRO {mar} {"March"}
+
+MACRO {apr} {"April"}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"June"}
+
+MACRO {jul} {"July"}
+
+MACRO {aug} {"August"}
+
+MACRO {sep} {"September"}
+
+MACRO {oct} {"October"}
+
+MACRO {nov} {"November"}
+
+MACRO {dec} {"December"}
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+
+MACRO {acta} {"Acta Informatica"}
+
+MACRO {cacm} {"Communications of the ACM"}
+
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+
+MACRO {ibmsj} {"IBM Systems Journal"}
+
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+
+MACRO {ipl} {"Information Processing Letters"}
+
+MACRO {jacm} {"Journal of the ACM"}
+
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+
+MACRO {scp} {"Science of Computer Programming"}
+
+MACRO {sicomp} {"SIAM Journal on Computing"}
+
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+
+MACRO {tods} {"ACM Transactions on Database Systems"}
+
+MACRO {tog} {"ACM Transactions on Graphics"}
+
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+
+MACRO {tcs} {"Theoretical Computer Science"}
+
+READ
+
+STRINGS { longest.label }
+
+INTEGERS { number.label longest.label.width }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+  #1 'number.label :=
+  #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+  number.label #1 + 'number.label :=
+  label width$ longest.label.width >
+    { label 'longest.label :=
+      label width$ 'longest.label.width :=
+    }
+    'skip$
+  if$
+}
+
+EXECUTE {initialize.longest.label}
+
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+{ preamble$ empty$
+    'skip$
+    { preamble$ write$ newline$ }
+  if$
+  "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+  "\end{thebibliography}" write$ newline$
+}
+
+EXECUTE {end.bib}
+
+
+
diff --git a/doc/common/project.bib b/doc/common/project.bib
index e852ee596ead19e3c557d8a3d1df84839a181aae..19820f52042d2f53bd41d4fdee66f49ec6927481 100644
--- a/doc/common/project.bib
+++ b/doc/common/project.bib
@@ -7,15 +7,36 @@
     YEAR        = {2002},
 }
 
+@CONFERENCE
+{
+    BlueGeneL2002,
+    AUTHOR    = {N. R. Adiga and others},
+    TITLE     = {{An Overview of the BlueGene/L Supercomputer}},
+    BOOKTITLE = {Proceedings of Supercomputing 2002},
+    ADDRESS   = {Baltimore, MD},
+    YEAR      = {2002},
+    NOTE      = {Available from http://sc-2002.org/paperpdfs/pap.pap207.pdf},
+}
+
 @MISC
 {
-    BlueGene2002, 
+    BlueGene2002,
     AUTHOR      = {{{Lawrence Livermore National Laboratory}}},
     TITLE       = {{Blue/GeneL}},
     HOWPUBLISHED= {http://www.llnl.gov/asci/platforms/bluegenel},
     YEAR        = {2003},
 }
 
+
+@MISC
+{
+    BlueGeneWeb, 
+    AUTHOR      = {{{IBM}}},
+    TITLE       = {{Blue Gene Home Page}},
+    HOWPUBLISHED= {http://www.research.ibm.com/bluegene},
+    YEAR        = {2004},
+}
+
 @MISC
 {
     DPCS2002, 
@@ -113,6 +134,15 @@
     NOTE        = {Available from http://www.llnl.gov/linux/slurm/},
 }
 
+@MISC
+{
+    SlurmWeb,
+    AUTHOR      = {M. Jette and M. Grondona},
+    TITLE       = {{SLURM Home Page}},
+    HOWPUBLISHED= {http://www.llnl.gov/linux/slurm},
+    YEAR        = {2004},
+}
+
 @CONFERENCE
 {
     STORM2001,