1,711 research outputs found
Adaptive Lock-Free Data Structures in Haskell: A General Method for Concurrent Implementation Swapping
A key part of implementing high-level languages is providing built-in and
default data structures. Yet selecting good defaults is hard. A mutable data
structure's workload is not known in advance, and it may shift over its
lifetime - e.g., between read-heavy and write-heavy, or from heavy contention
by multiple threads to single-threaded or low-frequency use. One idea is to
switch implementations adaptively, but it is nontrivial to switch the
implementation of a concurrent data structure at runtime. Performing the
transition requires a concurrent snapshot of data structure contents, which
normally demands special engineering in the data structure's design. However,
in this paper we identify and formalize an relevant property of lock-free
algorithms. Namely, lock-freedom is sufficient to guarantee that freezing
memory locations in an arbitrary order will result in a valid snapshot. Several
functional languages have data structures that freeze and thaw, transitioning
between mutable and immutable, such as Haskell vectors and Clojure transients,
but these enable only single-threaded writers. We generalize this approach to
augment an arbitrary lock-free data structure with the ability to gradually
freeze and optionally transition to a new representation. This augmentation
doesn't require changing the algorithm or code for the data structure, only
replacing its datatype for mutable references with a freezable variant. In this
paper, we present an algorithm for lifting plain to adaptive data and prove
that the resulting hybrid data structure is itself lock-free, linearizable, and
simulates the original. We also perform an empirical case study in the context
of heating up and cooling down concurrent maps.Comment: To be published in ACM SIGPLAN Haskell Symposium 201
PhyBin: binning trees by topology
A major goal of many evolutionary analyses is to determine the true evolutionary history of an organism. Molecular methods that rely on the phylogenetic signal generated by a few to a handful of loci can be used to approximate the evolution of the entire organism but fall short of providing a global, genome-wide, perspective on evolutionary processes. Indeed, individual genes in a genome may have different evolutionary histories. Therefore, it is informative to analyze the number and kind of phylogenetic topologies found within an orthologous set of genes across a genome. Here we present PhyBin: a flexible program for clustering gene trees based on topological structure. PhyBin can generate bins of topologies corresponding to exactly identical trees or can utilize Robinson-Fould’s distance matrices to generate clusters of similar trees, using a user-defined threshold. Additionally, PhyBin allows the user to adjust for potential noise in the dataset (as may be produced when comparing very closely related organisms) by pre-processing trees to collapse very short branches or those nodes not meeting a defined bootstrap threshold. As a test case, we generated individual trees based on an orthologous gene set from 10 Wolbachia species across four different supergroups (A–D) and utilized PhyBin to categorize the complete set of topologies produced from this dataset. Using this approach, we were able to show that although a single topology generally dominated the analysis, confirming the separation of the supergroups, many genes supported alternative evolutionary histories. Because PhyBin’s output provides the user with lists of gene trees in each topological cluster, it can be used to explore potential reasons for discrepancies between phylogenies including homoplasies, long-branch attraction, or horizontal gene transfer events
A Qualitative Study of Early-Career Special Education Faculty Perceptions of Preparation and Induction
Abstract Much time and attention is given to questions about what effective teachers need to know; however, proportionately little effort is spent on answering related questions of what effective teacher educators need to do to ensure all new teachers are well prepared for their roles and responsibilities. Recruitment and preparation of doctoral students who become teacher education researchers and teacher educators is a neglected part of this process. This investigation explored the formal and informal learning experiences of early-career special education faculty in institutions of higher education (IHE). Data were collected through in-depth interviews with seven pre-tenure assistant professors in special education. Interviews focused on three areas: doctoral learning experiences, including coursework, college teaching, field supervision, and advisor mentorship; professional and personal considerations that led to current IHE positions; and other facilitating or inhibiting factors in the transition from doctoral student to university faculty. Skype web-conferencing software was used to conduct seven face-to-face interviews with participants living in various parts of the country. Call Recorder for Mac software captured both the interview audio and video. HyperResearch qualitative software was used for coding, unitizing, and categorizing of transcribed data. Emerging themes suggest that factors motivating students to pursue doctoral education strongly influence career trajectory. Consistent themes of support coupled with balance, both between work and life, and teaching, research, and service, emerged as critical for successful induction into faculty roles. Findings will contribute to the literature about best practices in effective special education doctoral preparation and provide a deeper understanding of doctoral student education in preparation for future faculty roles in special education
Linear Haskell: practical linearity in a higher-order polymorphic language
Linear type systems have a long and storied history, but not a clear path
forward to integrate with existing languages such as OCaml or Haskell. In this
paper, we study a linear type system designed with two crucial properties in
mind: backwards-compatibility and code reuse across linear and non-linear users
of a library. Only then can the benefits of linear types permeate conventional
functional programming. Rather than bifurcate types into linear and non-linear
counterparts, we instead attach linearity to function arrows. Linear functions
can receive inputs from linearly-bound values, but can also operate over
unrestricted, regular values.
To demonstrate the efficacy of our linear type system - both how easy it can
be integrated in an existing language implementation and how streamlined it
makes it to write programs with linear types - we implemented our type system
in GHC, the leading Haskell compiler, and demonstrate two kinds of applications
of linear types: mutable data with pure interfaces; and enforcing protocols in
I/O-performing functions
Compiling functional reactive macroprograms for sensor networks
Thesis (S.M.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2005.Includes bibliographical references (p. 77-79).Sensor networks present a number of novel programming challenges for application developers. Their inherent limitations of computational power, communication bandwidth, and energy demand new approaches to programming that shield the developer from low-level details of resource management, concurrency, and in-network processing. To answer this challenge, this thesis presents a functional macroprogramming language called Regiment. The essential data model in Regiment is based on regions, which represent spatially distributed, time-varying collections of state. The programmer uses regions to define and manipulate dynamic sets of sensor nodes. A first compiler for Regiment has been constructed, which implements the essential core of the language on the TinyOS platform. This thesis presents the compiler as well as an intermediate language developed to serve as a Regiment compilation target.by Ryan Rhodes Newton.S.M
A unique assemblage of cosmopolitan freshwater bacteria and higher community diversity differentiate an urbanized estuary from oligotrophic Lake Michigan
Water quality is impacted significantly by urbanization. The delivery of increased nutrient loads to waterways is a primary characteristic of this land use change. Despite the recognized effects of nutrient loading on aquatic systems, the influence of urbanization on the bacterial community composition of these systems is not understood. We used massively-parallel sequencing of bacterial 16S rRNA genes to examine the bacterial assemblages in transect samples spanning the heavily urbanized estuary of Milwaukee, WI to the relatively un-impacted waters of Lake Michigan. With this approach, we found that genera and lineages common to freshwater lake epilimnia were common and abundant in both the high nutrient, urban-impacted waterways and the low nutrient Lake Michigan. Although the two environments harbored many taxa in common, we identified a significant change in the community assemblage across the urban-influence gradient, and three distinct community features drove this change. First, we found the urban-influenced waterways harbored significantly greater bacterial richness and diversity than Lake Michigan (i.e. taxa augmentation). Second, we identified a shift in the relative abundance among common freshwater lineages, where acI, acTH1, Algoriphagus and LD12, had decreased representation and Limnohabitans, Polynucleobacter, and Rhodobacter had increased representation in the urban estuary. Third, by oligotyping 18 common freshwater genera/lineages, we found that oligotypes (highly resolved sequence clusters) within many of these genera/lineages had opposite preferences for the two environments. With these data, we suggest many of the defined cosmopolitan freshwater genera/lineages contain both oligotroph and more copiotroph species or populations, promoting the idea that within-genus lifestyle specialization, in addition to shifts in the dominance among core taxa and taxa augmentation, drive bacterial community change in urbanized waters
Regulation of T Cell Homeostasis and Responses by Pten
The generation of lipid products catalyzed by PI3K is critical for normal T cell homeostasis and a productive immune response. PI3K can be activated in response to antigen receptor, co-stimulatory, cytokine, and chemokine signals. Moreover, dysregulation of this pathway frequently occurs in T cell lymphomas and is implicated in lymphoproliferative autoimmune disease. Akt acts as a central mediator of PI3K signals, downstream of which is the mTOR pathway, controlling cell growth and metabolism. Members of the Foxo family of transcription factors are also regulated by Akt, thus linking control over homing and migration of T cells, as well cell cycle entry, apoptosis, and DNA damage and oxidative stress responses, to PI3K signaling. PTEN, first identified as a tumor suppressor gene, encodes a lipid phosphatase that, by catalyzing the reverse of the PI3K “reaction,” directly opposes PI3K signaling. However, PTEN may have other functions as well, and recent reports have suggested roles for PTEN as a tumor suppressor independent of its effects on PI3K signaling. Through the use of models in which Pten is deleted specifically in T cells, it is becoming increasingly clear that control over autoimmunity and lymphomagenesis by PTEN involves multi-faceted functions of this molecule at multiple stages within the T cell compartment
Deterministic Threshold Queries of Distributed Data Structures
Abstract. Convergent replicated data types, or CvRDTs, are latticebased data structures for enforcing the eventual consistency of replicated objects in a distributed system. Although CvRDTs are provably eventually consistent, queries of CvRDTs nevertheless allow inconsistent intermediate states of replicas to be observed; and although in practice, many systems allow a mix of eventually consistent and strongly consistent queries, CvRDTs only support the former. Taking inspiration from our previous work on LVars for deterministic parallel programming, we show how to extend CvRDTs to support deterministic, strongly consistent queries using a mechanism called threshold queries. The threshold query technique generalizes to any lattice, and hence any CvRDT, and allows deterministic observations to be made of replicated objects before the replicas ’ states have converged
- …