Litanies of Performance

(it’s a reference page)
Version v1.0.0
Updated
Author Seb Home

Introduction

This is a reference page containing links to various resources related to software performance. In the past I have found collections of resources like this very handy, especially when starting out or investigating something new, so hopefully this might be helpful to someone too.

Performance Analysis and Tooling

io_uring

System to perform asynchronous I/O with fewer system calls. Also supports network operations. List of supported operations (as of 2024-12-01):

io_uring_prep_accept                   io_uring_prep_read
io_uring_prep_accept_direct            io_uring_prep_read_fixed
io_uring_prep_cancel                   io_uring_prep_readv
io_uring_prep_cancel64                 io_uring_prep_readv2
io_uring_prep_cancel_fd                io_uring_prep_recv
io_uring_prep_close                    io_uring_prep_recvmsg
io_uring_prep_close_direct             io_uring_prep_recvmsg_multishot
io_uring_prep_cmd                      io_uring_prep_recv_multishot
io_uring_prep_connect                  io_uring_prep_remove_buffers
io_uring_prep_fadvise                  io_uring_prep_rename
io_uring_prep_fallocate                io_uring_prep_renameat
io_uring_prep_fgetxattr                io_uring_prep_send
io_uring_prep_files_update             io_uring_prep_sendmsg
io_uring_prep_fsetxattr                io_uring_prep_sendmsg_zc
io_uring_prep_fsync                    io_uring_prep_send_set_addr
io_uring_prep_getxattr                 io_uring_prep_sendto
io_uring_prep_link                     io_uring_prep_send_zc
io_uring_prep_linkat                   io_uring_prep_send_zc_fixed
io_uring_prep_link_timeout             io_uring_prep_setxattr
io_uring_prep_madvise                  io_uring_prep_shutdown
io_uring_prep_mkdir                    io_uring_prep_socket
io_uring_prep_mkdirat                  io_uring_prep_socket_direct
io_uring_prep_msg_ring                 io_uring_prep_socket_direct_alloc
io_uring_prep_msg_ring_cqe_flags       io_uring_prep_splice
io_uring_prep_msg_ring_fd              io_uring_prep_statx
io_uring_prep_msg_ring_fd_alloc        io_uring_prep_symlink
io_uring_prep_multishot_accept         io_uring_prep_symlinkat
io_uring_prep_multishot_accept_direct  io_uring_prep_sync_file_range
io_uring_prep_nop                      io_uring_prep_tee
io_uring_prep_openat                   io_uring_prep_timeout
io_uring_prep_openat2                  io_uring_prep_timeout_remove
io_uring_prep_openat2_direct           io_uring_prep_timeout_update
io_uring_prep_openat_direct            io_uring_prep_unlink
io_uring_prep_poll_add                 io_uring_prep_unlinkat
io_uring_prep_poll_multishot           io_uring_prep_write
io_uring_prep_poll_remove              io_uring_prep_write_fixed
io_uring_prep_poll_update              io_uring_prep_writev
io_uring_prep_provide_buffers          io_uring_prep_writev2

OpenMP

OpenMPI

SIMD

Contains references for related to Single Instruction Multiple Data instructions/intrinsics.

Introductory Resources

https://en.algorithmica.org/hpc/simd/ http://sci.tuomastonteri.fi/programming/sse

Libraries

General

References

GPU Programming - NVIDIA CUDA

Introductory Resources

References

OpenCL

OpenCL can be used to program a variety of devices, including GPUs.

Introductory Resources

References


Home