SearcharxivSearch

arXiv subjects

James Elliott

Publications and source records attributed to James Elliott.

6 recordsLinked to original sources

Libfork: portable continuation-stealing with stackless coroutines

Fully-strict fork-join parallelism is a powerful model for shared-memory programming due to its optimal time scaling and strong bounds on memory scaling. The latter is rarely achieved due to the difficulty of implementing continuation stealing in traditional High Performance Computing (HPC) languages -- where it is often impossible without modifying the compiler or resorting to non-portable techniques. We demonstrate how stackless coroutines (a new feature in C++20) can enable fully-portable continuation stealing and present libfork a lock-free fine-grained parallelism library, combining coroutines with user-space, geometric segmented-stacks. We show our approach is able to achieve optimal time/memory scaling, both theoretically and empirically, across a variety of benchmarks. Compared to openMP (libomp), libfork is on average 7.2x faster and consumes 10x less memory. Similarly, compared to Intel's TBB, libfork is on average 2.7x faster and consumes 6.2x less memory. Additionally, we introduce non-uniform memory access (NUMA) optimizations for schedulers that demonstrate performance matching busy-waiting schedulers.

cs.DC

Simultaneously Enhanced Tenacity, Rupture Work, and Thermal Conductivity of Carbon Nanotubes Fibers by Increasing the Effective Tube Contribution

Although individual carbon nanotubes (CNTs) are superior as constituents to polymer chains, the mechanical and thermal properties of CNT fibers (CNTFs) remain inferior to commercial synthetic fibers due to the lack of synthesis methods to embed CNTs effectively in superstructures. The application of conventional techniques for mechanical enhancement resulted in a mild improvement of target properties while achieving parity at best on others. In this work, a Double-Drawing technique is developed to deform continuously grown CNTFs and rearrange the constituent CNTs in both mesoscale and nanoscale morphology. Consequently, the mechanical and thermal properties of the resulting CNTFs can be jointly improved, and simultaneously reach their highest performances with specific strength (tenacity) $\rm\sim3.30\,N\,tex^{-1}$, work of rupture $\rm\sim70\,J\,g^{-1}$, and thermal conductivity $\rm\sim354\,W\,m^{-1}\,K^{-1}$, despite starting from commercial low-crystallinity materials ($I{\rm_G}:I{\rm_D}\sim5$). The processed CNTFs are more versatile than comparable carbon fiber, Zylon, Dyneema, and Kevlar. Furthermore, based on evidence of load transfer efficiency on individual CNTs measured with In-Situ Stretching Raman, we find the main contributors to property enhancements are (1) the increased proportion of load-bearing CNT bundles and (2) the extension of effective length of tubes attached on these bundles.

cond-mat.mtrl-sci

Tolerating Silent Data Corruption in Opaque Preconditioners

We demonstrate algorithm-based fault tolerance for silent, transient data corruption in "black-box" preconditioners. We consider both additive Schwarz domain decomposition with an ILU(k) subdomain solver, and algebraic multigrid, both implemented in the Trilinos library. We evaluate faults that corrupt preconditioner results in both single and multiple MPI ranks. We then analyze how our approach behaves when then application is scaled. Our technique is based on a Selective Reliability approach that performs most operations in an unreliable mode, with only a few operations performed reliably. We also investigate two responses to faults and discuss the performance overheads imposed by each. For a non-symmetric problem solved using GMRES and ILU, we show that at scale our fault tolerance approach incurs only 22% overhead for the worst case. With detection techniques, we are able to reduce this overhead to 1.8% in the worst case.

cs.DC

Resilience in Numerical Methods: A Position on Fault Models and Methodologies

Future extreme-scale computer systems may expose silent data corruption (SDC) to applications, in order to save energy or increase performance. However, resilience research struggles to come up with useful abstract programming models for reasoning about SDC. Existing work randomly flips bits in running applications, but this only shows average-case behavior for a low-level, artificial hardware model. Algorithm developers need to understand worst-case behavior with the higher-level data types they actually use, in order to make their algorithms more resilient. Also, we know so little about how SDC may manifest in future hardware, that it seems premature to draw conclusions about the average case. We argue instead that numerical algorithms can benefit from a numerical unreliability fault model, where faults manifest as unbounded perturbations to floating-point data. Algorithms can use inexpensive "sanity" checks that bound or exclude error in the results of computations. Given a selective reliability programming model that requires reliability only when and where needed, such checks can make algorithms reliable despite unbounded faults. Sanity checks, and in general a healthy skepticism about the correctness of subroutines, are wise even if hardware is perfectly reliable.

cs.MS

Exploiting Data Representation for Fault Tolerance

We explore the link between data representation and soft errors in dot products. We present an analytic model for the absolute error introduced should a soft error corrupt a bit in an IEEE-754 floating-point number. We show how this finding relates to the fundamental linear algebra concepts of normalization and matrix equilibration. We present a case study illustrating that the probability of experiencing a large error in a dot product is minimized when both vectors are normalized. Furthermore, when data is normalized we show that the absolute error is less than one or very large, which allows us to detect large errors. We demonstrate how this finding can be used by instrumenting the GMRES iterative solver. We count all possible errors that can be introduced through faults in arithmetic in the computationally intensive orthogonalization phase, and show that when scaling is used the absolute error can be bounded above by one.

math.NA

Evaluating the Impact of SDC on the GMRES Iterative Solver

Increasing parallelism and transistor density, along with increasingly tighter energy and peak power constraints, may force exposure of occasionally incorrect computation or storage to application codes. Silent data corruption (SDC) will likely be infrequent, yet one SDC suffices to make numerical algorithms like iterative linear solvers cease progress towards the correct answer. Thus, we focus on resilience of the iterative linear solver GMRES to a single transient SDC. We derive inexpensive checks to detect the effects of an SDC in GMRES that work for a more general SDC model than presuming a bit flip. Our experiments show that when GMRES is used as the inner solver of an inner-outer iteration, it can "run through" SDC of almost any magnitude in the computationally intensive orthogonalization phase. That is, it gets the right answer using faulty data without any required roll back. Those SDCs which it cannot run through, get caught by our detection scheme.

cs.DC