↓
 
  • Phoronix
  • gromacs
  • OpenFOAM

Performance analysis, tools and experiments

An eclectic collection

  • Home
  • Blog
  • Tools
    • wspy – workload spy
  • Workloads
    • Geekbench
    • gromacs
      • lysozyme tutorial
      • PRACE benchmark
    • OpenFOAM
    • Phoronix
      • aobench
      • apache
      • asmfish
      • blake2
      • blender
      • botan
      • build-gcc
      • build-linux-kernel
      • build-llvm
      • build-php
      • bullet
      • c-ray
      • cachebench
      • compilebench
      • compress-p7zip
      • compress-pbzip2
      • compress-zstd
      • ebizzy
      • encode-flac
      • encode-mp3
      • ffmpeg
      • ffte
      • fftw
      • fhourstones
      • fio
      • fs-mark
      • gimp
      • git
      • go-benchmark
      • graphics-magick
      • hackbench
      • himeno
      • hmmer
      • indigobench
      • java-gradle-perf
      • java-scimark2
      • luajit
      • m-queens
      • mafft
      • n-queens
      • nginx
      • numpy
      • octave-benchmark
      • openssl
      • osbench
        • osbench – create processes
        • osbench – create threads
        • osbench – memory
      • parboil
      • pgbench
      • phpbench
      • polybench-c
      • povray
      • primesieve
      • pybench
      • radiance
      • rbenchmark
      • redis
      • rodinia
      • scikit-learn
      • scimark2
      • sqlite
      • stockfish
      • stream
      • stress-ng
      • tensorflow
      • tinymembench
      • tjbench
      • tscp
      • ttsiod-renderer
      • vpxenc
      • x264
      • y-cruncher
  • Experiments
Home - Page 5 << 1 2 3 4 5 6 7 8 >>

Post navigation

← Older posts
Newer posts →

wspy – added topdown memory analysis

Performance analysis, tools and experiments Posted on 2018-04-25 by mev2018-04-25

As a followup to a previous post, I’ve added support to wspy for topdown analysis for backend stalls.
Continue reading →

Posted in tools | Tagged memory, top-down, wspy | 1 Reply

Investigating Intel performance counters for backend memory costing…

Performance analysis, tools and experiments Posted on 2018-04-25 by mev2018-04-25

I’ve implemented the first level for topdown performance counter analysis and also done an initial analysis of ~15 workloads from recent Phoronix article. A logical next step is to expand the “backend bound” category to first separate CPU-bound vs. memory-bound and then separate out the L1 vs. L2 vs. L3 vs. main memory vs. memory stores.

This post looks at some of the counters under consideration.
Continue reading →

Posted in analysis | Tagged analysis technique, memory, metrics, perf, performance counters | Leave a reply

Off CPU analysis, getrusage, wait4 and related techniques…

Performance analysis, tools and experiments Posted on 2018-04-22 by mev2018-04-23

As I looked to analyze x264, I saw that the On CPU metric was considerably less than other benchmarks like openssl or c-ray that are On CPU almost 100% of the time. I also noticed that my Ryzen 1700 box scores somewhat lower on x264 than one described in Phoronix.

I have a hypothesis here that the reason is time spent waiting on a disk that is relatively slow as compared with Phoronix running off SSD. However, I was looking for some additional ways to more definitely demonstrate/measure this and believe I may have some changes that will both simplify wspy and give some basic metrics. This post documents some of the steps along the way and improvements planned.
Continue reading →

Posted in experiments | Tagged analysis technique, metrics, rusage | 1 Reply

wspy – process tracing, lost nodes and potential refactoring

Performance analysis, tools and experiments Posted on 2018-04-20 by mev2018-04-21

One of the tough bugs I’ve noticed sometimes pop up is an “orphaned” process tree in my tree. When I’ve collected trees of processes, very occasionally I’ll have a tree node drop on the floor and show up as an orphan when it clearly should have been attached.

The problem seems to come up more with very large data sets, e.g. build-gcc run with >1,000,000 processes. I was fortunate to recently see it pop up in a few c-ray on Ryzen with ~600 runs. The symptoms are as if one of a few things might be happening:

  1. Somewhere race conditions are causing me to miss events, particularly exit(2) events. Without these, the processes never get closed out with finish times and their counters and closing statistics are never dumped
  2. Perhaps I am getting the events but my tree building and accounting have subtle bugs introducing problems, particularly when pid numbers are reused

When the problem first appeared with build-gcc (where pid’s wrap around more than 30 times), I was suspicious more of the second cause, but more recently I’ve been influenced more by the former, particularly when it showed up in a small c-ray example on a fast processor.

This makes it interesting to figure out how to best debug things. I’ve dumped quite a few trace files of underlying event points and gone through them to look for patterns. Haven’t found anything there yet.

However, recent restructuring I did to dump process information to a file and have a later program reconstruct the trees, makes me realize I might also do this using an alternate implementation. I am going to try these as alternate implementations of a “–processtree-engine” and then run more than one to diagnose things.
Continue reading →

Posted in tools | Tagged wspy | Leave a reply

Set up Ryzen 7 1700 system

Performance analysis, tools and experiments Posted on 2018-04-19 by mev2018-04-20

I have set up a Ryzen 7 1700 system. I bought it at Costco at point it was discounted at point the older CPUs are getting discounted in time for newer.
Continue reading →

Posted in hardware | Tagged Ryzen | Leave a reply

Phoronix benchmarks – new Ryzen processors; looking @ the workloads

Performance analysis, tools and experiments Posted on 2018-04-19 by mev2018-06-14

AMD released new Ryzen processors today. Phoronix published an article that benchmarked these processors. Anand Tech also published a review. TechReport also wrote a review.

The posting is *not* measured on these new processors. Instead, it looks at dissecting the workloads when run on earlier AMD (Ryzen 1700) and Intel (Haswell i7-4770s) processors.
Continue reading →

Posted in analysis, experiments, workloads | Tagged phoronix, Ryzen | Leave a reply

Investigating performance counters related to memory

Performance analysis, tools and experiments Posted on 2018-04-19 by mev2018-04-21

As part of my investigation to create a page for STREAM, I have tried to reconcile things with underlying performance counters. This page documents some of that work.
Continue reading →

Posted in experiments | Tagged memory, performance counters | Leave a reply

wspy – added csv file as well as analysis functions

Performance analysis, tools and experiments Posted on 2018-04-18 by mev2018-04-19

I have updated wspy to dump a “processtable.csv” file at the same time it dumps a “processtable.txt” file.

This gives me several advantages:

  • I’ve separated the format of output from collecting instrumentation. Hence, I can run things once to collect the data and then display it in different forms. This addressed a problem where I kept thinking how to best decorate the process tree to strike a balance between too cluttered and not enough information. I can now save the information once in the tree and then display as needed
  • I have created an ability to dump metrics in format different from a tree
  • I have a tool that also helps me further investigate a problem where the build_gcc tree with 1 million processes has something going wrong.

Continue reading →

Posted in tools | Tagged metrics, wspy | Leave a reply

Top down performance counter analysis (part 3) – wspy

Performance analysis, tools and experiments Posted on 2018-04-17 by mev2018-04-19

As described in top down performance counter analysis part 1, top down analysis is an approach that uses key performance counters to characterize an application and then successively drills down with further refinement. On Intel x86 processors, this first level refinement characterizes the applications by looking at the overall usage of the pipeline. Topdown is implemented in the perf(1) tool and in the previous post, I also was able to extend likwid-perfctr to add a TOPDOWN performance group for 1st level characterization.

In my last post, I got topdown performance counter metrics added to the wspy tool when it is run in the “core” mode. In other words, instead of following processes, wspy reports against all processes that run on a core. In this posting, I have now also added it when performance counters are run per process. The resultant process trees are now decorated with the topdown metrics.
Continue reading →

Posted in tools | Tagged performance counters, top-down, wspy | Leave a reply

Top down performance counter analysis (part 2) – wspy

Performance analysis, tools and experiments Posted on 2018-04-16 by mev2018-04-17

As described in top down performance counter analysis part 1, top down analysis is an approach that uses key performance counters to characterize an application and then successively drills down with further refinement. On Intel x86 processors, this first level refinement characterizes the applications by looking at the overall usage of the pipeline. Topdown is implemented in the perf(1) tool and in the previous post, I also was able to extend likwid-perfctr to add a TOPDOWN performance group for 1st level characterization.

In this posting, I’ve documented steps I took to add such top down support to wspy
Continue reading →

Posted in tools | Tagged analysis technique, performance counters, top-down | Leave a reply

Post navigation

← Older posts
Newer posts →
©2025 - Performance analysis, tools and experiments - Weaver Xtreme Theme
↑