110 research outputs found
How do programs become more concurrent? A story of program transformations
For several decades, programmers have relied onMooreâ s Law to improve the performance of their softwareapplications. From now on, programmers need to programthe multi-cores if they want to deliver efficient code. Inthe multi-core era, a major maintenance task will be tomake sequential programs more concurrent. What are themost common transformations to retrofit concurrency intosequential programs?We studied the source code of 5 open-source Javaprojects. We analyzed qualitatively and quantitatively thechange patterns that developers have used in order toretrofit concurrency. We found that these transformationsbelong to four categories: transformations that improve thelatency, the throughput, the scalability, or correctness of theapplications. In addition, we report on our experience ofparallelizing one of our own programs. Our findings caneducate software developers on how to parallelize sequentialprograms, and can provide hints for tool vendors aboutwhat transformations are worth automating
Refactoring Sequential Java Code for Concurrency via Concurrent Libraries
Parallelizing existing sequential programs to run efficiently on multicores is hard. The Java 5 packagejava.util.concurrent (j.u.c.) supports writing concurrent programs: much of the complexity of writing threads-safe and scalable programs is hidden in the library. To use this package, programmers still need to reengineer existing code. This is tedious because it requires changing many lines of code, is error-prone because programmers can use the wrong APIs, and is omission-prone because programmers can miss opportunities to use the enhanced APIs. This paper presents our tool, CONCURRENCER, which enables programmers to refactor sequential code into parallel code that uses j.u.c. concurrent utilities. CONCURRENCER does not require any program annotations, although the transformations are very involved: they span multiple program statements and use custom program analysis. A find-and-replace tool can not perform such transformations. Empirical evaluation shows that CONCURRENCER refactors code effectively: CONCURRENCER correctly identifies and applies transformations that some open-source developers overlooked, and the converted code exhibits good speedup
Finding Bugs in Web Applications Using Dynamic Test Generation and Explicit State Model Checking
Web script crashes and malformed dynamically-generated web pages are common errors, and they seriously impact the usability of web applications. Current tools for web-page validation cannot handle the dynamically generated pages that are ubiquitous on today's Internet. We present a dynamic test generation technique for the domain of dynamic web applications. The technique utilizes both combined concrete and symbolic execution and explicit-state model checking. The technique generates tests automatically, runs the tests capturing logical constraints on inputs, and minimizes the conditions on the inputs to failing tests, so that the resulting bug reports are small and useful in finding and fixing the underlying faults. Our tool Apollo implements the technique for the PHP programming language. Apollo generates test inputs for a web application, monitors the application for crashes, and validates that the output conforms to the HTML specification. This paper presents Apollo's algorithms and implementation, and an experimental evaluation that revealed 302 faults in 6 PHP web applications
Finding Bugs In Dynamic Web Applications
Web script crashes and malformed dynamically-generated web pages are common errors, and they seriously impact usability of web applications. Currenttools for web-page validation cannot handle the dynamically-generatedpages that are ubiquitous on today's Internet.In this work, we apply a dynamic test generation technique, based oncombined concrete and symbolic execution, to the domain of dynamic webapplications. The technique generates tests automatically andminimizes the bug-inducing inputs to reduce duplication and to makethe bug reports small and easy to understand and fix.We implemented the technique in Apollo, an automated tool thatfound dozens of bugs in real PHP applications. Apollo generatestest inputs for the web application, monitors the application forcrashes, and validates that the output conforms to the HTMLspecification. This paper presents Apollo's algorithms andimplementation, and an experimental evaluation that revealed a totalof 214 bugs in 4 open-source PHP web applications
Refactoring GrPPI:Generic Refactoring for Generic Parallelism in C++
Funding: EU Horizon 2020 project, TeamPlay (https://www.teamplay-xh2020.eu), Grant Number 779882, UK EPSRC Discovery, grant number EP/P020631/1, and Madrid Regional Government, CABAHLA-CM (ConvergenciA Big dAta-Hpc: de Los sensores a las Aplicaciones) Grant Number S2018/TCS-4423.The Generic Reusable Parallel Pattern Interface (GrPPI) is a very useful abstraction over different parallel pattern libraries, allowing the programmer to write generic patterned parallel code that can easily be compiled to different backends such as FastFlow, OpenMP, Intel TBB and C++ threads. However, rewriting legacy code to use GrPPI still involves code transformations that can be highly non-trivial, especially for programmers who are not experts in parallelism. This paper describes software refactorings to semi-automatically introduce instances of GrPPI patterns into sequential C++ code, as well as safety checking static analysis mechanisms which verify that introducing patterns into the code does not introduce concurrency-related bugs such as race conditions. We demonstrate the refactorings and safety-checking mechanisms on four simple benchmark applications, showing that we are able to obtain, with little effort, GrPPI-based parallel versions that accomplish good speedups (comparable to those of manually-produced parallel versions) using different pattern backends.Publisher PDFPeer reviewe
Characterisation and categorisation of the diversity in viscoelastic vibrational properties between 98 wood types
International audienceContext Increased knowledge on diversity in wood properties would have implications both for fundamental research and for promoting a diversification of uses as material. *Aims The objective is to contribute to overcoming the critical lack of data on the diversity of wood dynamic mechanical/viscoelastic vibrational properties, by testing lesser-known species and categorizing sources of variability. *Methods Air-dry axial specific dynamic modulus of elasticity (E'/γ) and damping coefficient (tanδ) were measured on a wide sampling (1792 specimens) of 98 wood types from 79 species. An experimental device and protocol was designed for conducting systematic (i.e. rapid and reproducible) characterizations. *Results Diversity at the specimens' level corroborates the "standard" relationship between tanδ and E'/γ, which is discussed in terms of orientation of wood elements and of chemical composition. Diversity at the species level is expressed on the basis of results for normal heartwood, with specific gravity (γ) ranging from 0.2 to 1.3. Axial E'/γ ranges from 9 to 32 GPa and tanδ from 4×10-3 to 19×10-3. Properties distribution follows a continuum, but with group characteristics. The lowest values of tanδ are only found in certain tropical hardwoods. Results can also suggest alternative species for musical instruments making
Recommended from our members
Interaction between FTO gene variants and lifestyle factors on metabolic traits in an Asian Indian population
Background
Lifestyle factors such as diet and physical activity have been shown to modify the association between fat mass and obesity–associated (FTO) gene variants and metabolic traits in several populations; however, there are no gene-lifestyle interaction studies, to date, among Asian Indians living in India. In this study, we examined whether dietary factors and physical activity modified the association between two FTO single nucleotide polymorphisms (rs8050136 and rs11076023) (SNPs) and obesity traits and type 2 diabetes (T2D).
Methods
The study included 734 unrelated T2D and 884 normal glucose-tolerant (NGT) participants randomly selected from the urban component of the Chennai Urban Rural Epidemiology Study (CURES). Dietary intakes were assessed using a validated interviewer administered semi-quantitative food frequency questionnaire (FFQ). Physical activity was based upon the self-report. Interaction analyses were performed by including the interaction terms in the linear/logistic regression model.
Results
There was a significant interaction between SNP rs8050136 and carbohydrate intake (% energy) (Pinteraction = 0.04), where the ‘A’ allele carriers had 2.46 times increased risk of obesity than those with ‘CC’ genotype (P = 3.0 × 10−5) among individuals in the highest tertile of carbohydrate intake (% energy, 71 %). A significant interaction was also observed between SNP rs11076023 and dietary fibre intake (Pinteraction = 0.0008), where individuals with AA genotype who are in the 3rd tertile of dietary fibre intake had 1.62 cm lower waist circumference than those with ‘T’ allele carriers (P = 0.02). Furthermore, among those who were physically inactive, the ‘A’ allele carriers of the SNP rs8050136 had 1.89 times increased risk of obesity than those with ‘CC’ genotype (P = 4.0 × 10−5).
Conclusions
This is the first study to provide evidence for a gene-diet and gene-physical activity interaction on obesity and T2D in an Asian Indian population. Our findings suggest that the association between FTO SNPs and obesity might be influenced by carbohydrate and dietary fibre intake and physical inactivity. Further understanding of how FTO gene influences obesity and T2D through dietary and exercise interventions is warranted to advance the development of behavioral intervention and personalised lifestyle strategies, which could reduce the risk of metabolic diseases in this Asian Indian population
- …