591 |
Parallel algorithms and implementations for genetic analysis of quantitative traitsJayawardena, Mahen January 2007 (has links)
Many important traits in plants, animals and humans are quantitative, and most such traits are generally believed to be regulated by multiple genetic loci. Standard computational tools for analysis of quantitative traits use linear regression models for relating the observed phenotypes to the genetic composition of individuals in a population. However, using these tools to simultaneously search for multiple genetic loci is very computationally demanding. The main reason for this is the complex nature of the optimization landscape for the multidimensional global optimization problems that must be solved. This thesis describes parallel algorithms and implementation techniques for such optimization problems. The new computational tools will eventually enable genetic analysis exploiting new classes of multidimensional statistical models, potentially resulting in interesting results in genetics. We first describe how the algorithm used for global optimization in the standard, serial software is parallelized and implemented on a grid system. Then, we also describe a parallelized version of the more elaborate global optimization algorithm DIRECT and show how this can be deployed on grid systems and other loosely-coupled architectures. The parallel DIRECT scheme is further developed to exploit both coarse-grained parallelism in grid or clusters as well as fine-grained, tightly-coupled parallelism in multi-core nodes. The results show that excellent speedup and performance can be archived on grid systems and clusters, even when using a tightly-coupled algorithms such as DIRECT. Finally, a pilot implementation of a grid portal providing a graphical front-end for our code is implemented. After some further development, this portal can be utilized by geneticists for performing multidimensional genetic analysis of quantitative traits on a regular basis.
|
592 |
Parallelizing the Method of Conjugate Gradients for Shared Memory ArchitecturesLöf, Henrik January 2004 (has links)
Solving Partial Differential Equations (PDEs) is an important problem in many fields of science and engineering. For most real-world problems modeled by PDEs, we can only approximate the solution using numerical methods. Many of these numerical methods result in very large systems of linear equations. A common way of solving these systems is to use an iterative solver such as the method of conjugate gradients. Furthermore, due to the size of these systems we often need parallel computers to be able to solve them in a reasonable amount of time. Shared memory architectures represent a class of parallel computer systems commonly used both in commercial applications and in scientific computing. To be able to provide cost-efficient computing solutions, shared memory architectures come in a large variety of configurations and sizes. From a programming point of view, we do not want to spend a lot of effort optimizing an application for a specific computer architecture. We want to find methods and principles of optimizing our programs that are generally applicable to a large class of architectures. In this thesis, we investigate how to implement the method of conjugate gradients efficiently on shared memory architectures. We seek algorithmic optimizations that result in efficient programs for a variety of architectures. To study this problem, we have implemented the method of conjugate gradients using OpenMP and we have measured the runtime performance of this solver on a variety of both uniform and non-uniform shared memory architectures. The input data used in the experiments come from a Finite-Element discretization of the Maxwell equations in three dimensions of a fighter-jet geometry. Our results show that, for all architectures studied, optimizations targeting the memory hierarchy exhibited the largest performance increase. Improving the load balance, by balancing the arithmetical work and minimizing the number of global barriers showed to be of lesser importance. Overall, bandwidth minimization of the iteration matrix showed to be the most efficient optimization. On non-uniform architectures, proper data distribution showed to be very important. In our experiments we used page migration to improve the data distribution during runtime. Our results indicate that page migration can be very efficient if we can keep the migration cost low. Furthermore, we believe that page migration can be introduced in a portable way into OpenMP in the form of a directive with a affinity-on-next-touch semantic.
|
593 |
Software Configuration Management and Change ManagementLiu, Sha January 2009 (has links)
Nowadays, as the use of computers is rapidly spreading to our life, software is getting more and more complex and large in computer systems. Therefore, the software configuration management (SCM) is playing an increasingly important role in the software development process. One of its significant activities is change management, which has an outstanding role in dealing with the continued and concurrent change requirements during the system development and use. In this report, we describe some basic activities of SCM, overview some representative SCM CASE tools with emphasizing on change management and analyze a possibility of integration of SCM version management tool (e.g., Subversion) and error management tool (e.g., Bugzialla) in order to provide an integrated software configuration management and change management. Moreover, a set of exercises based on RCS are developed, which illustrate some SCM simple activities and their modification to facilitate version management and change management.
|
594 |
Reduceringav känslig information i loggfilerNygren, Patrik January 2017 (has links)
Information about companies’ internal networks and structures is something that normally is desired to be hidden from outsiders. By denying this information from non-authorized personnel, potential attackers will find it more difficult to find ways into the network and find attractive targets. Saab is a manufacturer of defense material and desires to obscure its internal structures. One of the aims of this project has been to examine what information on Saabs internal network and structures is given to suppliers of IT hardware when that supplier’s diagnostic tool is used. This information has been acquired by interviewing staff responsible for maintenance and installation of IT hardware and by examining the log files resulting from the diagnostic tool. A research has been done on what information is generally considered sensitive and what existing tools are available that can handle this sensitive information. Another goal has been to produce software that assists in searching for and replacing information that is deemed to be sensitive. The software has been produced using the classic waterfall model, where the separate phases are clearly defined and separated from each other. The finished application has been verified in its function against several types of hardware and verified to run on two different operating systems, Windows and Ubuntu. The result from running the application is that all MAC/IP-addresses are removed from the log files, together with user accounts and server names. Java was used as the programming language and the primary function is performed by Java’s classes Pattern and Matcher, which are responsible for searching for information and replacing that information. Besides a working application, the project has delivered a class diagram, a flow chart and test results. Also, several suggestions on how the work can move forward have been made. / Information om företags interna nätverk och struktur är något som vanligtvis i mesta möjliga mån önskas vara dolt för utomstående. Genom att dölja denna information görs det svårare för potentiella angripare att hitta både vägar in och åtråvärda målytor. Saab är en tillverkare av försvarsmateriel och har stort intresse av att dölja sina interna strukturer. Målet med detta projekt har varit att först undersöka vad för information om Saabs interna nätverk som lämnas ut till hårdvaruleverantör när leverantörens diagnostikverktyg körs. Denna information har erhållits med ledning av intervjuer med personal som är ansvariga för underhåll och installation av hårdvara samt även genom undersökning av de loggfiler som resulterar från diagnostikverktyget. En undersökning har gjorts om vilken information som anses som känslig och vilka färdiga verktyg som finns för att hantera detta. Vidare har sedan ett förslag på programvarustöd tagits fram, som syftar till att söka upp och begränsa den information som bedömts som känslig. Programvarustödet har utvecklats enligt den klassiska vattenfallsmodellen, där projektets olika faser är tydligt avgränsade från varandra. Den färdiga applikationen har verifierats i sin funktion mot ett flertal olika hårdvarumodeller och även på två olika operativsystem, Windows och Ubuntu. Resultatet av att köra applikationen är att MAC/IP-adresser tas bort från loggfilerna tillsammans med kontonamn och servernamn. Java används som programmeringsspråk och det centrala arbetet utgörs av Javas klasser Pattern och Matcher, som utför sökning och ersättning av känslig information. Projektet har förutom en körbar Java-applikation, även levererat klassdiagram, flödesdiagram och testrapporter. Dessutom har ett antal förslag på fortsatt arbete tagits fram.
|
595 |
Identifying Solutions for Customer – Supplier Communication Problems in Agile Software ProjectsTruszczynski, Mateusz January 2016 (has links)
Context. There are several methods of developing software in a systematic, engineering way. One of them are traditional methods such as waterfall. Nowadays, more common are becoming agile methodologies. Agile aims at addressing and improving a communication in software projects. However, customer - supplier communication in software projects still causes many difficulties. Objectives. In this study I wanted to identify basic customer – supplier communication problems that agile practitioners encounter in agile software projects. I also wanted to provide basic guidelines based on identified, prioritized problems and identified, prioritized solutions. Methods. Using recently published journal articles and conference proceedings I identify customer – supplier communication problems that agile practitioners encounter in agile software projects. In order to identify solutions, and also prioritize the identified problems I used a survey. Then, based on analysis of results of the survey foreseen guidelines were synthesized. Results. Literature study resulted in the identification of eight customer – supplier communication problems that agile practitioners encounter in agile software projects. The survey provided critical weighted evaluation of the problems and also suggested solutions to the problems. The obtained weighted results were used to develop the basic guidelines together with suggested solutions to each of them. Conclusions. The research was designed to help agile practitioners in their communication with a customer. The obtained results provide basic and starting guidelines that are based on the experience of the agile practitioners. That can be further extended based on future local and individual experience of agile practitioners.
|
596 |
Requirements scoping outside product lines : Systematic Literature Review and SurveyKollu, Ravichandra Kumar January 2016 (has links)
Context: Scoping is admitted as a key activity in Market Driven Software Development for handling the constant inflow of requirements. It helps in identifying the features, domains and products which help for gaining economic benefits in Software Product Line (SPL) development. Beyond SPL, managing the scope of the project is a major risk for project management. Continuously changing scope creates a congestion state to handle the requirements inflow which causes negative consequences like scope scrap and scope creep. However, for managing negative consequences caused due to requirements volatility depicts a need for work on requirements scoping outside the product line. Objectives: In this study, an exploratory work is carried to identify the literature and industrial perspectives on requirements scoping outside the product line. The main objectives are: Identifying the state of literature of requirements scoping outside product line and variability analysis. To explore the industrial practice on requirements scoping. Suggesting recommendations in improving the scoping process based on the literature and survey. Methods: Systematic Literature Review (SLR) using snowballing procedure was conducted to identify the literature available on requirements scoping outside the product line. Quality assessment using rigor and relevance was performed to find the trustworthiness of the papers obtained through SLR. The data obtained through SLR was analyzed using narrative analysis. Furthermore, an industrial survey was performed using web questionnaire to identify the industrial perspective on requirements scoping. Statistical analysis was performed for analyzing the data obtained from survey. Results: 23 relevant papers were identified through SLR. The results were categorized as definitions obtained, phenomena, challenges and methods/tools identified. From the finding of SLR, an industrial survey was conducted, which has obtained 93 responses. The challenges that were identified through literature were validated through survey and are prioritized. Moreover, the study identified additional challenges that are not discussed in the literature. Additionally, the approaches followed in organizations while scoping the requirements were identified through the survey. Conclusions: This study identified that scope creep is the most frequently occurring phenomenon that organizations are facing throughout the lifecycle of the project. In addition project delays, quality issues and project cost were identified as the most occurring scoping associated challenges. Moreover, scoping activity was identified as the continuous activity which changes significantly throughout the lifecycle. Finally, suggestions were given for improving the scoping process.
|
597 |
Automated static code analysis : A tool for early vulnerability detectionBaca, Dejan January 2009 (has links)
Software vulnerabilities are added into programs during its development. Architectural flaws are introduced during planning and design, while implementation faults are created during coding. Penetration testing is often used to detect these vulnerabilities. This approach is expensive because it is performed late in development and any correction would increase lead-time. An alternative would be to detect and correct vulnerabilities in the phase of development where they are the least expensive to correct and detect. Source code audits have often been suggested and used to detect implementations vulnerabilities. However, manual audits are time consuming and require extended expertise to be efficient. A static code analysis tool could achieve the same results as a manual audit but at fraction of the time. Through a set of cases studies and experiments at Ericsson AB, this thesis investigates the technical capabilities and limitations of using a static analysis tool as an early vulnerability detector. The investigation is extended to studying the human factor by examining how the developers interact and use the static analysis tool. The contributions of this thesis include the identification of the tools capabilities so that further security improvements can focus on other types of vulnerabilities. By using static analysis early in development possible cost saving measures are identified. Additionally, the thesis presents the limitations of static code analysis. The most important limitation being the incorrect warnings that are reported by static analysis tools. In addition, a development process overhead was deemed necessary to successfully use static analysis in an industry setting.
|
598 |
Search-based approaches to software fault prediction and software testingAfzal, Wasif January 2009 (has links)
Software verification and validation activities are essential for software quality but also constitute a large part of software development costs. Therefore efficient and cost-effective software verification and validation activities are both a priority and a necessity considering the pressure to decrease time-to-market and intense competition faced by many, if not all, companies today. It is then perhaps not unexpected that decisions related to software quality, when to stop testing, testing schedule and testing resource allocation needs to be as accurate as possible. This thesis investigates the application of search-based techniques within two activities of software verification and validation: Software fault prediction and software testing for non-functional system properties. Software fault prediction modeling can provide support for making important decisions as outlined above. In this thesis we empirically evaluate symbolic regression using genetic programming (a search-based technique) as a potential method for software fault predictions. Using data sets from both industrial and open-source software, the strengths and weaknesses of applying symbolic regression in genetic programming are evaluated against competitive techniques. In addition to software fault prediction this thesis also consolidates available research into predictive modeling of other attributes by applying symbolic regression in genetic programming, thus presenting a broader perspective. As an extension to the application of search-based techniques within software verification and validation this thesis further investigates the extent of application of search-based techniques for testing non-functional system properties. Based on the research findings in this thesis it can be concluded that applying symbolic regression in genetic programming may be a viable technique for software fault prediction. We additionally seek literature evidence where other search-based techniques are applied for testing of non-functional system properties, hence contributing towards the growing application of search-based techniques in diverse activities within software verification and validation.
|
599 |
Parallel programming in Go and Scala : A performance comparisonJohnell, Carl January 2015 (has links)
This thesis provides a performance comparison of parallel programming in Go and Scala. Go supports concurrency through goroutines and channels. Scala have parallel collections, futures and actors that can be used for concurrent and parallel programming. The experiment used two different types of algorithms to compare the performance between Go and Scala. Parallel versions of matrix multiplication and matrix chain multiplication were implemented with goroutines and channels in Go. Matrix multiplication was implemented with parallel collections and futures in Scala, and chain multiplication was implemented with actors. The results from the study shows that Scala has better performance than Go, parallel matrix multiplication was about 3x faster in Scala. However, goroutines and channels are more efficient than actors. Go performed better than Scala when the number of goroutines and actors increased in the benchmark for parallel chain multiplication. Both Go and Scala have features that makes parallel programming easier, but I found Go as a language was easier to learn and understand than Scala. I recommend anyone interested in Go to try it out because of its ease of use.
|
600 |
Utveckling av applikation till plattformen Android / Development of application for the Android platformBäärnhielm, Arvid January 2015 (has links)
Målet med detta projekt var att utveckla en applikation för Android för lagring av tillagade matlådor. Utifrån beräknad hållbarhetstid för matlådan skulle en notifikation ges innan matlådan blev dålig. Då idén byggde på att hållbarhetstider skulle beräknas utifrån ingående ingredienser så kunde projektet inte färdigställas när det visade sig att detta inte var ett genomförbart sätt att beräkna hållbarhetstid. En till stora delar fungerande applikation utifrån grundidén har ändå skapats.
|
Page generated in 0.0964 seconds