Skip to main content

Layouts and Debugging

These two topics help once programs outgrow a few hand-painted PEs. One covers the Paint features for larger layouts: compile-time values that differ by position, connections that Paint routes for you, and per-PE data written at build time. The other shows how to find out what a multi-PE run did, PE by PE: how far each PE got, what it received, and where its cycles went.

Each topic is a complete program, and each opens with the lessons and topics it needs. Read a topic once you have read everything on its Needs line.

TopicWhat it teaches
Large layouts: geovars, terminals and transports, linkOne kernel with a role per PE, a transport Paint routes, per-PE data from a program, a rotated layout, and the silent Paint traps with their safe forms
Debugging and profiling a multi-PE runProgress markers, received counts and performance counters, three faults to find, and fsanitize=bounds