Skip to content

Instantly share code, notes, and snippets.

View chadbrewbaker's full-sized avatar

Chad Brewbaker chadbrewbaker

View GitHub Profile
@chadbrewbaker
chadbrewbaker / TestNotebook.py
Last active February 20, 2022 19:00
Generic test rig for students in a C programming class
!ls
!pwd
!uname -a
!which gcc
!which clang
@chadbrewbaker
chadbrewbaker / perfchat-20-2-2022.md
Last active February 20, 2022 19:25
perfchat-20-2-2022
@chadbrewbaker
chadbrewbaker / easyPerf5Dec2021.md
Last active December 5, 2021 19:49
Show Notes

Guest Andrey Akinshin @andrey_akinshin

  • Benchmarks shoudld have a question about a business decision in mind.
  • Corner cases are routine.
  • If a few samples goes from 100ms to 5 seconds then we don't need fancy methods.
  • What are practically significant differences in the context of your problem?
  • Avoid measurements from cold starts - unless that is what you are trying to benchmark.
  • Measure of central tendency - you usually want the median not the mean.
  • Median trick - take an odd number of samples to have one number in the middle.
  • Efficiency of the Harrell-Davis quantile estimator
  • New Arxiv paper
@chadbrewbaker
chadbrewbaker / easyPerf21Nov20201.md
Last active November 21, 2021 19:59
EasyPerf 21 November 2021 - Bryan Cantrill

EasyPerf 21 November 2021 - Bryan Cantrill

@chadbrewbaker
chadbrewbaker / corelight-logs.schema.json
Created October 18, 2021 16:36
Latest Corelight schema - still beta, might be breaking changes
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "https://corelight.com/software-sensor.schema.json",
"title": "Corelight Logs",
"description": "Definition of all of the potential logs for this installation",
"$defs": {
"time": {"type": "string", "pattern": "[0-9]{4}-[0-1][0-9]-[0-3][0-9]T[0-2][0-9]:[0-5][0-9]:[0-5][0-9]\\.?[0-9]{0,6}Z"},
"port": {"type": "integer", "minimum": 0, "maximum": 65535},
"count": {"type": "integer", "minimum": 0, "maximum": 18446744073709551615},
"int": {"type": "integer", "minimum": -9223372036854775807, "maximum": 9223372036854775807},
@chadbrewbaker
chadbrewbaker / showNotes10Oct2021.md
Last active October 10, 2021 18:41
EasyPerf 10 October 2021 Show Notes

Guest @JamesReinders. website

  • On device parallelism and multi-device parallelism
  • OSDI 2021 Keynote on modern hardware having many chips
  • Where is the parallelism in the data?
  • Amdal's law - with larger data more chances for parallelism.
  • Understand the data flow. What are the device limits? Registers needed, cache line size, IO buffer size, ...?
  • Excited about compute kernels that auto-vectorize.
  • J language dense multiply kernel
  • Non Uniform Memory Access (NUMA) - pooling of virtual memory across local devices.
  • Algorithms beat hardware
@chadbrewbaker
chadbrewbaker / 29Sept2021.md
Last active September 26, 2021 19:18
EasyPerf Show Notes for 26 September 2021

Guest Matt Flemming @fleming_matt - Linux Performance

  • Former Linux maintiner, performance engineer at DataStax.
  • Mostly investigative work on performance regressions
  • P99Conf 2021
  • Which CPU frequency driver is the kernel using? What is the quality of the driver? Is it properly pinning the CPU frequency?
  • Bryan Cantrill talk on developing a next generation of servers with open source well tested drivers.
  • What should be the default operating system page size? Answer: benchmark - it depends.
  • Linux Page Cache hit ratio research by Brendann Gregg at Netflix.
  • memory mapped files Beej's Guide to Unix IPC
  • Advanced Configuration and Power Interface (ACPI) tables
@chadbrewbaker
chadbrewbaker / lsa.md
Last active September 22, 2021 23:23
LSA Redistricting 22 Setember 2021 meeting
@chadbrewbaker
chadbrewbaker / 9.19.2021.md
Last active September 20, 2021 11:55
Win 11 WSL Prodfiler notes.

My notes using Prodfiler on a Windows 11 pro preview build.

# Open a Powershell terminal as administrator
wsl --update
wsl --shutdown
wsl
# Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.10.43.3-microsoft-standard-WSL2 x86_64)
cd ~/