This paper presents a novel approach for integrating arrays with access time O(1) into functional languages. It introduces n-dimensional arrays combined with a type system that supports hierarchies of array types with varying shape information as well as a shapeinvariant form of array comprehension called with-loop. Together, these constructs allow for a programming style similar to that of array programming languages such as Apl. We use Single Assignment C (SaC), a functional C-variant aimed at numerical applications that is based on the proposed design, to demonstrate that programs written in that style can be compiled to code whose runtime performance is competitive with that of hand-optimized Fortran programs. However, essential prerequisites for such performance figures are a shape inference system integrated in the type system as well as several high-level optimizations. Most notably of these is With Loop Folding, an optimization technique for eliminating intermediate arrays. Capsule Review To me as a compiler writer, this work is unusually interesting because it transforms scientific code in ways that have not been considered in high-performance compilers. For example, because of the single-assignment nature of the language, loop fusion and array contraction can be done without loop alignment or data liveness analysis. The combination of novel program transformation and unique language support represents a fundamentally different alternative to traditional approaches and significantly broadens the opportunities for loop and array optimization. I believe that this work will find enthusiastic audience in the compiler community.
We give an in-depth introduction to the design of our functional array programming language SaC, the main aspects of its compilation into host machine code, and its parallelisation based on multi-threading. The language design of SaC aims at combining high-level, compositional array programming with fully automatic resource management for highly productive code development and maintenance. We outline the compilation process that maps SaC programs to computing machinery. Here, our focus is on optimisation techniques that aim at restructuring entire applications from nested compositions of general fine-grained operations into specialised coarse-grained operations. We present our implicit parallelisation technology for shared memory architectures based on multi-threading and discuss further optimisation opportunities on this level of code generation. Both optimisation and parallelisation rigorously exploit the absence of side-effects and the explicit data flow characteristic of a functional setting.
A novel class of symmetric amphi-and triphilic (hydrophilic, lipophilic, fluorophilic) block copolymers has been investigated with respect to their interactions with lipid membranes. The amphiphilic triblock copolymer has the structure PGMA 20 -PPO 34 -PGMA 20 (GP) and it becomes triphilic after attaching perfluoroalkyl moieties (F9) to either end which leads to F 9 -PGMA 20 -PPO 34 -PGMA 20 -F 9 (F-GP). The hydrophobic poly(propylene oxide) (PPO) block is sufficiently long to span a lipid bilayer. The poly(glycerol monomethacrylate) (PGMA) blocks have a high propensity for hydrogen bonding. The hydrophobic and lipophobic perfluoroalkyl moieties have the tendency to phase segregate in aqueous as well as in hydrocarbon environments. We performed differential scanning calorimetry (DSC) measurements on polymer bound lipid vesicles under systematic variation of the bilayer thickness, the nature of the lipid headgroup, and the polymer concentration. The vesicles were composed of phosphatidylcholines (DMPC, DPPC, DAPC, DSPC) or phosphatidylethanolamines (DMPE, DPPE, POPE). We showed that GP as well as F-GP binding have membrane stabilizing and destabilizing components.PPO and F9 blocks insert into the hydrophobic part of the membrane concomitantly with PGMA block adsorption to the lipid headgroup layer. The F9 chains act as additional membrane anchors. The insertion of the PPO blocks of both GP and F-GP could be proven by 2D-NOESY NMR spectroscopy. By fluorescence microscopy we show that F-GP binding increases the porosity of POPC giant unilamellar vesicles (GUVs), allowing the influx of water soluble dyes as well as the translocation of the complete triphilic polymer and its accumulation at the GUV surface. These results open a new route for the rational design of membrane systems with specific properties.
We present the design of S-NET, a coordination language and component technology based on stream processing. S-NET achieves a near-complete separation between application code, written in a conventional programming language, and coordination code, written in S-NET itself. S-NET boxes integrate existing sequential code as stream-processing components into streaming networks, whose construction is based on algebraic formulae built out of four network combinators. Subtyping on the level of boxes and networks and a tailor-made inheritance mechanism achieve flexible software reuse.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.