Engineering topics
Grove, David
Publications and source records attributed to Grove, David.
Blocking Filters with Enhanced Throughput for X-Ray Microcalorimetry
New and improved blocking filters (see figure) have been developed for microcalorimeters on several mission payloads, made of high-transmission polyimide support mesh, that can replace the nickel mesh used in previous blocking filter flight designs. To realize the resolution and signal sensitivity of today s x-ray microcalorimeters, significant improvements in the blocking filter stack are needed. Using high-transmission polyimide support mesh, it is possible to improve overall throughput on a typical microcalorimeter such as Suzaku s X-ray Spectrometer by 11%, compared to previous flight designs. Using polyimide to replace standard metal mesh means the mesh will be transparent to energies 3 keV and higher. Incorporating polyimide s advantageous strength-to-weight ratio, thermal stability, and transmission characteristics permits thinner filter materials, significantly enhancing through - put. A prototype contamination blocking filter for ASTRO-H has passed QT-level acoustic testing. Resistive traces can also be incorporated to provide decontamination capability to actively restore filter performance in orbit.
Lifeline-based Global Load Balancing
On shared-memory systems, Cilk-style work-stealing has been used to effectively parallelize irregular task-graph based applications such as Unbalanced Tree Search (UTS). There are two main difficulties in extending this approach to distributed memory. In the shared memory approach, thieves (nodes without work) constantly attempt to asynchronously steal work from randomly chosen victims until they find work. In distributed memory, thieves cannot autonomously steal work from a victim without disrupting its execution. When work is sparse, this results in performance degradation. In essence, a direct extension of traditional work-stealing to distributed memory violates the work-first principle underlying work-stealing. Further, thieves spend useless CPU cycles attacking victims that have no work, resulting in system inefficiencies in multi-programmed contexts. Second, it is non-trivial to detect active distributed termination (detect that programs at all nodes are looking for work, hence there is no work). This problem is well-studied and requires careful design for good performance. Unfortunately, in most existing languages/frameworks, application developers are forced to implement their own distributed termination detection. In this paper, we develop a simple set of ideas that allow work-stealing to be efficiently extended to distributed memory. First, we introduce lifeline graphs: low-degree, low diameter, fully connected directed graphs. Such graphs can be constructed from k-dimensional hypercubes. When a node is unable to find work after w unsuccessful steals, it quiesces after informing the outgoing edges in its lifeline graph. Quiescent nodes do not disturb other nodes. A quiesced node is reactivated when work arrives from a lifeline and itself shares this work with those of its incoming lifelines that are activated. Termination occurs precisely when computation at all nodes has quiesced. In a language such as X10, such passive distributed termination can be detected automatically using the finish construct -- no application code is necessary.