scholarly journals Control flow graphs optimization in intermediate representations of the functional dataflow parallel programming language

Author(s):  
Vladimir Vasilev ◽  
◽  
Alexander Legalov ◽  

Functional dataflow programming languages are intended for the development of architecture-independent parallel programs and support the control of computations based on data availability. Due to the fact that at present parallel computing systems are very widespread, and their programming in imperative languages is associated with portability problems, the development of architecturally independent parallel programming tools is an urgent task. When such a program is translated, intermediate representations are formed as the information graph and the corresponding control graph. During program execution, data readiness signals are transmitted along the arcs of the control graph. An explicit selection of the control graph allows us not only to change the computational control strategies and ensure the adaptation of the program to the architecture features, but also to apply specific methods for optimizing control dependencies. The paper proposes transformation methods that provide optimization of the control graph. When generating a control graph from an informational one, redundant arcs are introduced into it, the removal of which does not affect the result of the program, but leads to its more efficient execution. It is shown that in dataflow programs, in addition to control dependencies inherent in other programming languages, additional ones associated with the implementation features of deferred or conditional computations described by delayed lists arise. A formal description of redundant dependencies of various types is given, as well as an effective algorithm for their identification. The developed approach can be applied to such dataflow programming languages as PIFAGOR and Smile.

Parasitology ◽  
2016 ◽  
Vol 143 (4) ◽  
pp. 401-415 ◽  
Author(s):  
STEPHANIE M. FLETCHER-LARTEY ◽  
GRAZIELLA CAPRARELLI

SUMMARYThe uptake and acceptance of Geographic Information Systems (GIS) technology has increased since the early 1990s and public health applications are rapidly expanding. In this paper, we summarize the common uses of GIS technology in the public health sector, emphasizing applications related to mapping and understanding of parasitic diseases. We also present some of the success stories, and discuss the challenges that still prevent a full scope application of GIS technology in the public health context. Geographical analysis has allowed researchers to interlink health, population and environmental data, thus enabling them to evaluate and quantify relationships between health-related variables and environmental risk factors at different geographical scales. The ability to access, share and utilize satellite and remote-sensing data has made possible even wider understanding of disease processes and of their links to the environment, an important consideration in the study of parasitic diseases. For example, disease prevention and control strategies resulting from investigations conducted in a GIS environment have been applied in many areas, particularly in Africa. However, there remain several challenges to a more widespread use of GIS technology, such as: limited access to GIS infrastructure, inadequate technical and analytical skills, and uneven data availability. Opportunities exist for international collaboration to address these limitations through knowledge sharing and governance.


2020 ◽  
Vol 23 (3) ◽  
pp. 473-493
Author(s):  
Nikita Andreevich Kataev ◽  
Alexander Andreevich Smirnov ◽  
Andrey Dmitrievich Zhukov

The use of pointers and indirect memory accesses in the program, as well as the complex control flow are some of the main weaknesses of the static analysis of programs. The program properties investigated by this analysis are too conservative to accurately describe program behavior and hence they prevent parallel execution of the program. The application of dynamic analysis allows us to expand the capabilities of semi-automatic parallelization. In the SAPFOR system (System FOR Automated Parallelization), a dynamic analysis tool has been implemented, based on on the instrumentation of the LLVM representation of an analyzed program, which allows the system to explore programs in both C and Fortran programming languages. The capabilities of the static analysis implemented in SAPFOR are used to reduce the overhead program execution, while maintaining the completeness of the analysis. The use of static analysis allows to reduce the number of analyzed memory accesses and to ignore scalar variables, which can be explored in a static way. The developed tool was tested on performance tests from the NAS Parallel Benchmarks package for C and Fortran languages. The implementation of dynamic analysis, in addition to traditional types of data dependencies (flow, anit, output), allows us to determine privitizable variables and a possibility of pipeline execution of loops. Together with the capabilities of DVM and OpenMP these greatly facilitates program parallelization and simplify insertion of the appropriate compiler directives.


Author(s):  
Anna Trikalinou ◽  
Nikolaos Bourbakis

Memory errors have long been a critical security issue primarily for C/C++ programming languages and are still considered one of the top three most dangerous software errors according to the MITRE ranking. In this paper the authors focus on their exploitation via control-flow hijacking and data-only attacks (stack, and partially heap (G. Novarck & E. Berger, 2010)) by proposing a synergistic security methodology, which can accurately detect and thwart them. Their methodology is based on the Dynamic Information Flow Tracking (DIFT) technique and improves its data-only attack detection by utilizing features from the Reverse Stack Execution (RSE) security technique. Thus, the authors can significantly lower the resource consumption of the latter methodology, while increasing the former's accuracy. Their proof-of-concept compiler implementation verifies their assumptions and is able to protect vulnerable C programs against various real-world attack scenarios.


Sign in / Sign up

Export Citation Format

Share Document