8,497 research outputs found
khmer: Working with Big Data in Bioinformatics
We introduce design and optimization considerations for the 'khmer' package.Comment: Invited chapter for forthcoming book on Performance of Open Source
Application
Proactive bottleneck performance analysis in parallel computing using openMP
The aim of parallel computing is to increase an application performance by
executing the application on multiple processors. OpenMP is an API that
supports multi platform shared memory programming model and shared-memory
programs are typically executed by multiple threads. The use of multi threading
can enhance the performance of application but its excessive use can degrade
the performance. This paper describes a novel approach to avoid bottlenecks in
application and provide some techniques to improve performance in OpenMP
application. This paper analyzes bottleneck performance as bottleneck inhibits
performance. Performance of multi threaded applications is limited by a variety
of bottlenecks, e.g. critical sections, barriers and so on. This paper provides
some tips how to avoid performance bottleneck problems. This paper focuses on
how to reduce overheads and overall execution time to get better performance of
application.Comment: 8 Pages,6 figur
Coz: Finding Code that Counts with Causal Profiling
Improving performance is a central concern for software developers. To locate
optimization opportunities, developers rely on software profilers. However,
these profilers only report where programs spent their time: optimizing that
code may have no impact on performance. Past profilers thus both waste
developer time and make it difficult for them to uncover significant
optimization opportunities.
This paper introduces causal profiling. Unlike past profiling approaches,
causal profiling indicates exactly where programmers should focus their
optimization efforts, and quantifies their potential impact. Causal profiling
works by running performance experiments during program execution. Each
experiment calculates the impact of any potential optimization by virtually
speeding up code: inserting pauses that slow down all other code running
concurrently. The key insight is that this slowdown has the same relative
effect as running that line faster, thus "virtually" speeding it up.
We present Coz, a causal profiler, which we evaluate on a range of
highly-tuned applications: Memcached, SQLite, and the PARSEC benchmark suite.
Coz identifies previously unknown optimization opportunities that are both
significant and targeted. Guided by Coz, we improve the performance of
Memcached by 9%, SQLite by 25%, and accelerate six PARSEC applications by as
much as 68%; in most cases, these optimizations involve modifying under 10
lines of code.Comment: Published at SOSP 2015 (Best Paper Award
- …