24 research outputs found
Continuation-Passing C: compiling threads to events through continuations
In this paper, we introduce Continuation Passing C (CPC), a programming
language for concurrent systems in which native and cooperative threads are
unified and presented to the programmer as a single abstraction. The CPC
compiler uses a compilation technique, based on the CPS transform, that yields
efficient code and an extremely lightweight representation for contexts. We
provide a proof of the correctness of our compilation scheme. We show in
particular that lambda-lifting, a common compilation technique for functional
languages, is also correct in an imperative language like C, under some
conditions enforced by the CPC compiler. The current CPC compiler is mature
enough to write substantial programs such as Hekate, a highly concurrent
BitTorrent seeder. Our benchmark results show that CPC is as efficient, while
using significantly less space, as the most efficient thread libraries
available.Comment: Higher-Order and Symbolic Computation (2012). arXiv admin note:
substantial text overlap with arXiv:1202.324
Same data, different conclusions: Radical dispersion in empirical results when independent analysts operationalize and test the same hypothesis
In this crowdsourced initiative, independent analysts used the same dataset to test two hypotheses regarding the effects of scientists’ gender and professional status on verbosity during group meetings. Not only the analytic approach but also the operationalizations of key variables were left unconstrained and up to individual analysts. For instance, analysts could choose to operationalize status as job title, institutional ranking, citation counts, or some combination. To maximize transparency regarding the process by which analytic choices are made, the analysts used a platform we developed called DataExplained to justify both preferred and rejected analytic paths in real time. Analyses lacking sufficient detail, reproducible code, or with statistical errors were excluded, resulting in 29 analyses in the final sample. Researchers reported radically different analyses and dispersed empirical outcomes, in a number of cases obtaining significant effects in opposite directions for the same research question. A Boba multiverse analysis demonstrates that decisions about how to operationalize variables explain variability in outcomes above and beyond statistical choices (e.g., covariates). Subjective researcher decisions play a critical role in driving the reported empirical results, underscoring the need for open data, systematic robustness checks, and transparency regarding both analytic paths taken and not taken. Implications for organizations and leaders, whose decision making relies in part on scientific findings, consulting reports, and internal analyses by data scientists, are discussed
Tribological investigation of TiAlCrN and TiAlN/CrN coatings grown by combined steered-arc/unbalanced magnetron deposition
The dry sliding wear of monolayer TiAlCrN and multilayer TiAlN/CrN coatings has been investigated against a BM2 tool steel counterface. The coatings were deposited on a BM2 tool steel substrate by combined steered-arc/unbalanced-magnetron deposition. Increasing either contact load or sliding speed led to a reduction in friction coefficient, typically from 1.1 to 0.2. Increasing load resulted in an increase in wear rate for both TiAlCrN and TiAlN/CrN (e.g. from 7 × 10-6 mm3/m at 22 N to 4 × 10-5 mm3/m at 189 N for the TiAlCrN monolayer coating, and from 7 × 10-6 mm3/m at 22 N to 2.5 × 10-5 mm3/m at 189 N for TiAlN/CrN multilayer). The wear rate for all coatings was at least an order of magnitude lower than the uncoated BM2 steel. The wear rate of the TiAlCrN coating tended to decrease with an increase in sliding speed (from 7.4 × 10-5 mm3/m at 0.2 m/s to 1.3 × 10-5 mm3 m at 1.1m/s) while the wear rate of the TiAlN/CrN was approximately constant as a function of sliding speed (approx. 1.5 × 10-5 mm3m)