387 research outputs found
Recommended from our members
Analyzing and Visualizing Whole Program Architectures
This paper describes our work to develop new tool support for analyzing and visualizing the architecture of complete large-scale (millions or more lines of code) programs. Our approach consists of (i) creating a compact, accurate representation of a whole C or C++ program, (ii) analyzing the program in this representation, and (iii) visualizing the analysis results with respect to the program's architecture. We have implemented our approach by extending and combining a compiler infrastructure and a program visualization tool, and we believe our work will be of broad interest to those engaged in a variety of program understanding and transformation tasks. We have added new whole-program analysis support to ROSE [15, 14], a source-to-source C/C++ compiler infrastructure for creating customized analysis and transformation tools. Our whole-program work does not rely on procedure summaries; rather, we preserve all of the information present in the source while keeping our representation compact. In our representation, a million-line application fits in well less than 1 GB of memory. Because whole-program analyses can generate large amounts of data, we believe that abstracting and visualizing analysis results at the architecture level is critical to reducing the cognitive burden on the consumer of the analysis results. Therefore, we have extended Vizz3D [19], an interactive program visualization tool, with an appropriate metaphor and layout algorithm for representing a program's architecture. Our implementation provides developers with an intuitive, interactive way to view analysis results, such as those produced by ROSE, in the context of the program's architecture. The remainder of this paper summarizes our approach to whole-program analysis (Section 2) and provides an example of how we visualize the analysis results (Section 3)
Tool Support for Inspecting the Code Quality of HPC Applications
The nature of HPC application development encourages ad hoc design and implementation, rather than formal requirements analysis and design specification as is typical in software engineering. However, we cannot simply expect HPC developers to adopt formal software engineering processes wholesale, even while there is a need to improve software structure and quality to ensure future maintainability. Therefore, we propose tools that HPC developers can use at their discretion to obtain feedback on the structure and quality of their codes. This feedback would come in the form of code quality metrics and analyses, presented when necessary in intuitive and interactive visualizations. This paper summarizes our implementation of just such a tool, which we apply to a standard HPC benchmark as ''proof-of-concept.'
Exploitation of Dynamic Communication Patterns through Static Analysis
Abstract not provide
Recommended from our members
Architectural Visualization of C/C++ Source Code for Program Comprehension
Structural and behavioral visualization of large-scale legacy systems to aid program comprehension is still a major challenge. The challenge is even greater when applications are implemented in flexible and expressive languages such as C and C++. In this paper, we consider visualization of static and dynamic aspects of large-scale scientific C/C++ applications. For our investigation, we reuse and integrate specialized analysis and visualization tools. Furthermore, we present a novel layout algorithm that permits a compressive architectural view of a large-scale software system. Our layout is unique in that it allows traditional program visualizations, i.e., graph structures, to be seen in relation to the application's file structure
Pt accelerated coarsening of A15 precipitates in Cr-Si alloys
The effect of alloying Cr-rich Cr-Si alloys with Pt was investigated by a combination of complementary experimental methods and atomic scale modelling. The investigated Cr-Si and Cr-Si-Pt (Cr ⩾86 at.%) alloys developed a two-phase microstructure consisting of Cr solid solution (Crss) matrix and strengthened by A15 precipitates during annealing at 1200\ub0C. It was found that additions of 2 at.% Pt increase the coarsening rate by almost five times considering annealing times up to 522 h. Pt was found to change the precipitate matrix orientation relationship, despite its low influence on the Crss matrix/A15 precipitate misfit. Through this experimental and modelling approach new insight has been gained into mechanisms of enhanced coarsening by Pt addition. The increased coarsening is principally attributed to a change in interface composition and structure resulting in different thermodynamic stabilities: Pt-containing A15 phase was found to have a broader compositional range if both elements, Pt and Si, are present compared to only Si. Additionally, the Crss phase was found to have a higher solubility of Pt and Si over just Si. Both factors additionally facilitated Ostwald ripening
Recommended from our members
Support for Whole-Program Analysis and the Verification of the One-Definition Rule in C++
We present a compact and accurate representation of a whole-program abstract syntax tree, and use it to detect a specific security vulnerability in C++ programs known as a One-Definition Rule (ODR) violation. The ODR states that types and functions appearing in multiple compilation units must be defined identically. However, no current compiler can enforce ODR because doing so requires the ability to see the full application source at once; where ODR is violated, the program is incorrect. Moreover, a lack of ODR enforcement makes a program vulnerable to the so-called VPTR exploit, in which an object's virtual function table is replaced by malicious code. Our representation of the whole program preserves all features of the source for analysis and transformation, and permits a million-line application to fit entirely in the memory of a workstation with 1 GB of RAM
Recommended from our members
Comprehending Software Architecture using a Single-View Visualization
Software is among the most complex human artifacts, and visualization is widely acknowledged as important to understanding software. In this paper, we consider the problem of understanding a software system's architecture through visualization. Whereas traditional visualizations use multiple stakeholder-specific views to present different kinds of task-specific information, we propose an additional visualization technique that unifies the presentation of various kinds of architecture-level information, thereby allowing a variety of stakeholders to quickly see and communicate current development, quality, and costs of a software system. For future empirical evaluation of multi-aspect, single-view architectural visualizations, we have implemented our idea in an existing visualization tool, Vizz3D. Our implementation includes techniques, such as the use of a city metaphor, that reduce visual complexity in order to support single-view visualizations of large-scale programs
БІОМОНІТОРИНГ ЕКОЛОГІЧНОГО СТАНУ ПРИРОДНИХ ВОДОЙМ
The review article analyzes an importance of water bodies monitoring to develop the appropriate measures for improving their environmental condition. It is shown that the use of chemical approaches alone to determine the quality of water as a living environment for aquatic organisms is insufficient for environmental assessment of the components of hydrosphere. It is due to the difficulties of identifying all the diversity of available anthropogenic pollutants of water environment, of assessing their interaction, migration and transformation in water and water body inhabitants. However, biological analysis methods more reflect the relationship between bioavailability of xenobiotics and other contaminants, their content in the cells of aquatic organisms and toxic effect on hydrobionts. These reasons provide the advantages of biomonitoring methods such as bioindication and biological testing, over the methods of chemical analysis of water bodies and watercourses. Application of these methods will greatly help to identify environmental risks, selecting the most promising measures for the successful implementation of water bodies management.
В обзорной статье проанализировано значение мониторинга водных объектов с целью разработки соответствующих мероприятий по улучшению их экологической состояния. Показано, что применение одних химических подходов для определения качества воды как среды обитания водных организмов недостаточно для экологической оценки компонентов гидросферы, учитывая трудности выявления всего разнообразия имеющихся в водной среде антропогенных загрязнителей, оценки их взаимодействия, миграции и трансформации в воде и в организме жителей водоемов. Зато биологические методы анализа в большей степени отражают связь между биодоступностью ксенобиотиков и других загрязнителей, их содержанием в клетках водных организмов и токсическим воздействием на гидробионтов. Это свидетельствует на преимущества использования методов биомониторинга, таких как биоиндикация и биотестирование, над химическими методами анализа водоемов и водотоков. Применение этих методов будет способствовать эффективному выявлению экологического риска, выбора перспективных мероприятий для успешного менеджмента водных объектов.В оглядовій статті проаналізовано значення моніторингу водних об’єктів з метою розробки відповідних заходів щодо його поліпшення їхнього екологічної стану. Показано, що застосування самих лише хімічних підходів для визначення якості води як середовища життя водяних організмів недостатнє для екологічної оцінки компонентів гідросфери з огляду на труднощі виявлення всієї різноманітності наявних у водному середовищі антропогенних полютантів, оцінки їхньої взаємодії, міграції й трансформації у воді та організмі мешканців водойм. Натомість біологічні методи аналізу більшою мірою віддзеркалюють зв’язок між біодоступністю ксенобіотиків та інших забруднювачів, їхнім вмістом у клітинах водяних організмів і токсичним впливом на гідробіонтів. Це зумовлює переваги використання методів біомоніторингу, таких як біоіндикація і біотестування, над хімічними методами аналізу водойм і водотоків. Застосування цих методів сприятиме ефективному виявленню екологічного ризику, вибору перспективних заходів для успішного менеджменту водних об’єктів.
 
Energy aware approach for HPC systems
International audienceHigh‐performance computing (HPC) systems require energy during their full life cycle from design and production to transportation to usage and recycling/dismanteling. Because of increase of ecological and cost awareness, energy performance is now a primary focus. This chapter focuses on the usage aspect of HPC and how adapted and optimized software solutions could improve energy efficiency. It provides a detailed explanation of server power consumption, and discusses the application of HPC, phase detection, and phase identification. The chapter also suggests that having the load and memory access profiles is insufficient for an effective evaluation of the power consumed by an application. The available leverages in HPC systems are also shown in detail. The chapter proposes some solutions for modeling the power consumption of servers, which allows designing power prediction models for better decision making.These approaches allow the deployment and usage of a set of available green leverages, permitting energy reduction
- …