132 research outputs found

    Аналіз ефективності використання паралельних обчислень в інформаційній технології

    Get PDF
    Магістерська дисертація: 90 с., 22 рис., 21табл., 1 додаток, 41 джерело. Актуальність. Розробка паралельних програм є актуальною сферою діяльності у програмуванні. Кожний програмний продукт піддається тестуванню на багатьох стадіях реалізації (від прототипу до готового продукту) для оцінки ефективності та якості функціонування. Однак багатопоточні програми відрізняються своєю стохастичною поведінкою та сильно залежать від обчислювальних ресурсів, на яких вони виконуються. Тож для випробування паралельної програми необхідно запустити її велику кількість разів на різних ресурсах. На жаль, традиційні методи тестування не здатні врахувати всі особливості функціонування паралельних алгоритмів та випробувати багатопоточну програму належним чином, передбачивши усі можливі сценарії її виконання. Окрім цього, під час розробки інформаційної технології з використанням паралельних обчислень виникають питання ще й стосовно коректності використання того чи іншого інструменту багатопоточності, та доцільності розпаралелювання алгоритму взагалі. У даній роботі пропонується спосіб тестування багатопоточної програми шляхом моделювання її засобами стохастичних мереж Петрі для аналізу ефективності використання паралельних обчислень в програмі, що дозволить врахувати не детермінований порядок інструкцій, виконуваних потоками та об’єм обчислювальних ресурсів. Зв'язок роботи з науковими програмами, планами, темами. Робота виконувалась на кафедрі автоматизованих систем обробки інформації та управління Національного технічного університету України «Київський політехнічний інститут ім. Ігоря Сікорського» в рамках теми «Методи візуального програмування Петрі-об'єктних моделей» (№ 0117U000918). Метою дослідження є підвищення ефективності використання паралельних обчислень в інформаційній технології. Для досягнення поставленої мети необхідно вирішити такі завдання: − проаналізувати сучасні засоби і методи тестування та аналізу ефективності багатопоточних програм; − розробити моделі основних низько- та високорівневих інструментів багатопоточності на основі стохастичних мереж Петрі: • створення потоку, початок і кінець його роботи; • блокування потоку; • блок синхронізації дій потоку; • доступ потоків до спільних даних; • пул потоків. − визначити правила співставлення фрагмента програмного Java-коду частині мережі Петрі; − розробити бібліотеку базових фрагментів багатопоточної програми на основі застосування DESS(Discrete Event System Simulation); − розробити компонент для анімації функціонування Петрі-об’єктної моделі; − виявити залежність ефективності використання певного інструменту багатопоточності від його параметрів на основі розроблених моделей. Об'єктом дослідження є процес розробки паралельних обчислень в інформаційних технологіях. Предмет дослідження – методи аналізу ефективності використання паралельних обчислень в інформаційних технологіях. Методи дослідження – методи імітаційного моделювання і математичної статистики, метод Петрі-об'єктного моделювання. Наукова новизна одержаних результатів: • вперше розроблено метод Петрі-об'єктного моделювання паралельних обчислень, який дозволяє скоротити часові, фінансові та ресурсні затрати при тестування паралельних алгоритмів; • вперше запропоновано критерій оцінювання ефективності використання паралельних багатоядерних обчислень в інформаційній технології з урахуванням обчислювальних ресурсів, що надає можливість оцінювати доцільність використання в програмі тих чи інших інструментів багатопоточного програмування. Апробація результатів дисертації. Результати дослідження, що включені до дисертації оприлюднені на міжнародних наукових конференціях ICCSEEA2018 та ICCSEEA2019. Публікації. Результати роботи опубліковані в періодичному виданні «Advances in Intelligent Systems and Computing» (volume 754[35], volume 938[39]), що індексується в наукометричній базі Scopus, в тезах Дванадцятої[31] та Тринадцятої[33] міжнародної науково-практичної конференції «Математичне та імітаційне моделювання систем. МОДС» (2017, 2018), в статті фахового журналу «Вісник НТУУ «КПІ». Інформатика, управління та обчислювальна техніка» (випуск 66)[25], в тезах п'ятої Міжнародної науково-практичної конференції «Управління розвитком технологій»[32], та у тезах третьої всеукраїнської науково-практичної конференції молодих вчених та студентів «Інформаційні системи та технології управління» (ІСТУ-2019)[41].Master's Thesis: 90 pp., 22 fig., 21 tab., 1 app., 41 sources. Topicality. The development of parallel programs is a topical area in programming. Each software product should be tested during the many stages of implementation (from prototype to finished product) in order to evaluate the efficiency and quality of its functioning. However, multithreaded programs differ in their stochastic behavior and are highly dependent on the computational resources they are running on. Therefore, to test a parallel program, you need to run it many times on different resources. Unfortunately, traditional testing methods are not able to take into account all the features of running parallel algorithms and to test a multi-threaded program properly, assuming all possible scenarios for its implementation. In addition, during the development of information technology using parallel computing, there are also questions about the correctness of the use of a multithreaded tool, and about the necessity of parallelizing the algorithm at all. This paper proposes a method to test a multithreaded program by modeling it with stochastic Petri nets to analyze the efficiency of using parallel computations in the program. This method takes into account the non-deterministic order of instructions executed by the threads and the amount of computing resources. Relationship of work with scientific programs, plans, themes. carried out at the Department of Automated Systems for Information Processing and Management of the National Technical University of Ukraine «Igor Sikorsky Kyiv Polytechnic Institute» by the topic of “Methods of visual programming of Petri-object models” (№ 0117U000918). The aim of the research is to increase the efficiency of using parallel computing in information technology. To achieve this goal the following tasks must be accomplished : − to analyze modern tools and methods of testing and analyzing the effectiveness of multithreaded programs; − to develop models of basic low- and high-level multithreading tools based on stochastic Petri nets: • creation of the thread, beginning and end of its work; • thread blocking; • threads synchronization; • threads access to shared data; • thread pool. − to determine the rules for transforming the Java code fragments into the Petri net; − to develop a library of basic fragments of multithreaded program which is based on the software DESS (Discrete Event System Simulation); − to develop a component to animate the functioning of the Petri-object model; − to determine the dependence of the efficiency of a particular multithreading tool on its parameters using the developed models. The object of study is the process of developing parallel computing in information technologies. The subject of study is methods of efficiency analysis of parallel computing in information technologies. Research methods – methods of simulation modeling and mathematical statistics, the Petri-object simulation method. Scientific novelty of the obtained results: • first developed a Petri-object simulation method for parallel computing that reduces time, financial and resource costs when testing parallel algorithms; • for the first time proposed a criterion for evaluating the efficiency of parallel multi-core computing in information technology, which takes into account computational resources, and provides an opportunity to evaluate the necessity of using certain multithreading tools in the program. Approbation of the thesis results. The research results included in the thesis were published at the international scientific conferences ICCSEEA2018 and ICCSEEA2019. Publications. The results of the work are published in the book series “Advances in Intelligent Systems and Computing” (volume 754[35], volume 938[39]), which is indexed in the Scopus database, in the theses of the Twelfth[31] and Thirteenth[33] international scientific-practical conference “Mathematical modeling and simulation of systems. MODS”(2017, 2018), in the article of the professional journal “Visnyk NTUU “KPI”. Informatics, Management and Computer Engineering” (Issue 66)[25], in the theses of the Fifth International Scientific and Practical Conference “Management of Technology Development”[32], and in the theses of the Third All-Ukrainian Scientific and Practical Conference of Young Scientists and Students “Information Systems and Management Technologies”(ISTU-2019)[41]

    Debugging multi-agent systems with design documents

    Get PDF
    Debugging multi-agent systems, which are concurrent, distributed, and consist of complex components is difficult, yet crucial. The development of these complex systems is supported by agent-oriented software engineering methodologies which utilise agents as the central design metaphor. The systems that are developed are inherently complex since the components of these systems may interact in flexible and sophisticated ways and traditional debugging techniques are not appropriate. Despite this, very little effort has been applied to developing appropriate debugging tools and techniques. Debugging multi-agent systems without good debugging tools is highly impractical and without suitable debugging support developing and maintaining multi-agent systems will be more difficult than it need be. In this thesis we propose that the debugging process can be supported by following an agent-oriented design methodology, and then using the developed design artifacts in the debugging phase. We propose a domain independent debugging framework which comprises the developed processes and components that are necessary in using design artifacts as debugging artifacts. Our approach is to take a non-formal design artifact, such as an AUML protocol design, and encode it in a machine interpretable manner such that the design can be used as a model of correct system behaviour. These models are used by a run-time debugging system to compare observed behaviour against specified behaviour. We provide details for transforming two design artifact types into equivalent debugging artifacts and show how these can be used to detect bugs. During a debugging episode in which a bug has been identified our debugging approach can provide detailed information about the possible reason for the bug occurring. To determine if this information was useful in helping to debug programs we undertook a thorough empirical study and identified that use of the debugging tool translated to an improvement in debugging performance. We conclude that the debugging techniques developed in this thesis provide effective debugging support for multi-agent systems and by having an extensible framework new design artifacts can be explored and as translations are developed they can be added to the debugging system

    Fujaba days 2009 : proceedings of the 7th international Fujaba days, Eindhoven University of Technology, the Netherlands, November 16-17, 2009

    Get PDF
    Fujaba is an Open Source UML CASE tool project started at the software engineering group of Paderborn University in 1997. In 2002 Fujaba has been redesigned and became the Fujaba Tool Suite with a plug-in architecture allowing developers to add functionality easily while retaining full control over their contributions. Multiple Application Domains Fujaba followed the model-driven development philosophy right from its beginning in 1997. At the early days, Fujaba had a special focus on code generation from UML diagrams resulting in a visual programming language with a special emphasis on object structure manipulating rules. Today, at least six rather independent tool versions are under development in Paderborn, Kassel, and Darmstadt for supporting (1) reengineering, (2) embedded real-time systems, (3) education, (4) specification of distributed control systems, (5) integration with the ECLIPSE platform, and (6) MOF-based integration of system (re-) engineering tools. International Community According to our knowledge, quite a number of research groups have also chosen Fujaba as a platform for UML and MDA related research activities. In addition, quite a number of Fujaba users send requests for more functionality and extensions. Therefore, the 7th International Fujaba Days aimed at bringing together Fujaba developers and Fujaba users from all over the world to present their ideas and projects and to discuss them with each other and with the Fujaba core development team

    Fujaba days 2009 : proceedings of the 7th international Fujaba days, Eindhoven University of Technology, the Netherlands, November 16-17, 2009

    Get PDF
    Fujaba is an Open Source UML CASE tool project started at the software engineering group of Paderborn University in 1997. In 2002 Fujaba has been redesigned and became the Fujaba Tool Suite with a plug-in architecture allowing developers to add functionality easily while retaining full control over their contributions. Multiple Application Domains Fujaba followed the model-driven development philosophy right from its beginning in 1997. At the early days, Fujaba had a special focus on code generation from UML diagrams resulting in a visual programming language with a special emphasis on object structure manipulating rules. Today, at least six rather independent tool versions are under development in Paderborn, Kassel, and Darmstadt for supporting (1) reengineering, (2) embedded real-time systems, (3) education, (4) specification of distributed control systems, (5) integration with the ECLIPSE platform, and (6) MOF-based integration of system (re-) engineering tools. International Community According to our knowledge, quite a number of research groups have also chosen Fujaba as a platform for UML and MDA related research activities. In addition, quite a number of Fujaba users send requests for more functionality and extensions. Therefore, the 7th International Fujaba Days aimed at bringing together Fujaba developers and Fujaba users from all over the world to present their ideas and projects and to discuss them with each other and with the Fujaba core development team

    Software Performance Engineering using Virtual Time Program Execution

    Get PDF
    In this thesis we introduce a novel approach to software performance engineering that is based on the execution of code in virtual time. Virtual time execution models the timing-behaviour of unmodified applications by scaling observed method times or replacing them with results acquired from performance model simulation. This facilitates the investigation of "what-if" performance predictions of applications comprising an arbitrary combination of real code and performance models. The ability to analyse code and models in a single framework enables performance testing throughout the software lifecycle, without the need to to extract performance models from code. This is accomplished by forcing thread scheduling decisions to take into account the hypothetical time-scaling or model-based performance specifications of each method. The virtual time execution of I/O operations or multicore targets is also investigated. We explore these ideas using a Virtual EXecution (VEX) framework, which provides performance predictions for multi-threaded applications. The language-independent VEX core is driven by an instrumentation layer that notifies it of thread state changes and method profiling events; it is then up to VEX to control the progress of application threads in virtual time on top of the operating system scheduler. We also describe a Java Instrumentation Environment (JINE), demonstrating the challenges involved in virtual time execution at the JVM level. We evaluate the VEX/JINE tools by executing client-side Java benchmarks in virtual time and identifying the causes of deviations from observed real times. Our results show that VEX and JINE transparently provide predictions for the response time of unmodified applications with typically good accuracy (within 5-10%) and low simulation overheads (25-50% additional time). We conclude this thesis with a case study that shows how models and code can be integrated, thus illustrating our vision on how virtual time execution can support performance testing throughout the software lifecycle

    Proceedings of VVSS2007 - verification and validation of software systems, 23rd March 2007, Eindhoven, The Netherlands

    Get PDF

    Proceedings of VVSS2007 - verification and validation of software systems, 23rd March 2007, Eindhoven, The Netherlands

    Get PDF

    Proceedings of the First NASA Formal Methods Symposium

    Get PDF
    Topics covered include: Model Checking - My 27-Year Quest to Overcome the State Explosion Problem; Applying Formal Methods to NASA Projects: Transition from Research to Practice; TLA+: Whence, Wherefore, and Whither; Formal Methods Applications in Air Transportation; Theorem Proving in Intel Hardware Design; Building a Formal Model of a Human-Interactive System: Insights into the Integration of Formal Methods and Human Factors Engineering; Model Checking for Autonomic Systems Specified with ASSL; A Game-Theoretic Approach to Branching Time Abstract-Check-Refine Process; Software Model Checking Without Source Code; Generalized Abstract Symbolic Summaries; A Comparative Study of Randomized Constraint Solvers for Random-Symbolic Testing; Component-Oriented Behavior Extraction for Autonomic System Design; Automated Verification of Design Patterns with LePUS3; A Module Language for Typing by Contracts; From Goal-Oriented Requirements to Event-B Specifications; Introduction of Virtualization Technology to Multi-Process Model Checking; Comparing Techniques for Certified Static Analysis; Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder; jFuzz: A Concolic Whitebox Fuzzer for Java; Machine-Checkable Timed CSP; Stochastic Formal Correctness of Numerical Algorithms; Deductive Verification of Cryptographic Software; Coloured Petri Net Refinement Specification and Correctness Proof with Coq; Modeling Guidelines for Code Generation in the Railway Signaling Context; Tactical Synthesis Of Efficient Global Search Algorithms; Towards Co-Engineering Communicating Autonomous Cyber-Physical Systems; and Formal Methods for Automated Diagnosis of Autosub 6000
    corecore