• Stars
    star
    104
  • Rank 320,295 (Top 7 %)
  • Language
    C++
  • License
    MIT License
  • Created over 3 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A tool to measure CPU core to core latency

c2clat

A tool to measure CPU core to core latency (inter-core latency).

Build:

g++ -O3 -DNDEBUG c2clat.cpp -o c2clat -pthread

Example usage:

$ ./c2clat 
 CPU    0    1    2    3    4    5    6    7
   0    0   92   66   62   16   56   54   53
   1   92    0   50   54   53   14   49   50
   2   66   50    0   48   51   49   13   48
   3   62   54   48    0   53   50   48   13
   4   16   53   51   53    0   53   51   53
   5   56   14   49   50   53    0   49   50
   6   54   49   13   48   51   49    0   48
   7   53   50   48   13   53   50   48    0

Create plot using gnuplot:

c2clat -p | gnuplot -p

Plot of inter-core latency

If you want to run on a subset of cores use taskset:

$ taskset -c 10-11 ./c2clat
 CPU   10   11
  10    0   52
  11   52    0

If you want to label the heatmap plot replace the plot command with:

plot '$data' matrix rowheaders columnheaders using 2:1:3 with image, \
     '$data' matrix rowheaders columnheaders using 2:1:(sprintf("%g",$3)) with labels

More Repositories

1

awesome-modern-cpp

A collection of resources on modern C++
HTML
11,209
star
2

awesome-lockfree

A collection of resources on wait-free and lock-free programming
1,634
star
3

MPMCQueue

A bounded multi-producer multi-consumer concurrent queue written in C++11
C++
1,048
star
4

SPSCQueue

A bounded single-producer single-consumer wait-free and lock-free queue written in C++11
C++
800
star
5

ipc-bench

Latency benchmarks of Unix IPC mechanisms
C
531
star
6

spartan

A collection of High-Frequency trading components
C++
250
star
7

udpreplay

Replay UDP packets from a pcap file
C++
242
star
8

HashMap

An open addressing linear probing hash table, tuned for delete heavy workloads
C++
183
star
9

Seqlock

An implementation of Seqlock in C++11
C++
167
star
10

nanomq

Ultra low latency messaging kernel
C++
151
star
11

hiccups

Measures the system induced jitter ("hiccups") a CPU bound thread experiences
C++
85
star
12

efvicap

erfvicap is a packet capture tool for network adapters from Solarflare
C++
53
star
13

statkit

Statistics toolkit for JavaScript
JavaScript
51
star
14

Function

Heap allocation free version of C++11 std::function
C++
49
star
15

TokenBucket

Lock-free implementation of the token bucket algorithm in C++
C++
44
star
16

isatomic

Test if AVX vector loads and stores are atomic
C++
20
star
17

CharConv

Fast integer to string and string to integer conversion functions
C++
16
star
18

BinarySemaphore

Binary semaphore using futexes.
C++
8
star
19

RingMap

Hybrid data structure that acts like a ring buffer and map
C++
7
star
20

dotemacs

My emacs config
Emacs Lisp
6
star
21

unats

A simple single threaded NATS client for C++.
C++
4
star
22

nordpool

Data preprocessing / munging scripts for Nordpool power market data
HTML
3
star
23

openonload

git import of https://www.openonload.org/
Shell
3
star
24

go-pikchr

Pikchr wrapped for Go using WebAssembly. No cgo required.
Go
3
star
25

sfpl

Simple functional programming language
Python
2
star
26

spark-dht11

Spark app to read a DHT11 sensor and publish humidity and temperature as Spark variables
C++
2
star
27

gmbackup

Simple tool to backup a Gmail account
Go
2
star
28

t-amp

Tripath Class-T audio amplifier
1
star
29

anything-git

Anything sources for Git
Emacs Lisp
1
star
30

go-graphviz

Graphviz wrapped for Go using WebAssembly. No cgo required.
CMake
1
star
31

chipamp

A hand crafted power amplifier of the Gainclone type
1
star
32

sysjitter2

1
star
33

gccsense

Fork of http://cx4a.org/repo/gccsense.git
Emacs Lisp
1
star