warming up your workspace

Julia practice in High-Performance Computing

Browse the rooms before signing in. Opening a room requires an account and follows your existing access. Practice does not issue certificates.

  • Down the Columns

    A column can hold repeated observations of one variable. Summing each column produces one total per variable while naturally walking dense column-major storage.

    layout. Free room.

  • Fold It Up

    A simple reduce interface can reuse the earlier left fold. Later grouping changes require algebraic conditions that a sequential reference does not need.

    fold. Free room.

  • The Stable Sum

    A sum accumulator should have a useful type before the first observation, including when no observations exist. This extends the foundations loop with a typed identity.

    stable. Free room.

  • The Running Total

    A scan retains every partial reduction rather than only the final total. Prefix sums can turn per-job costs into cumulative work.

    scan. Free room.

  • No Branches

    A rectifier keeps positive observations and replaces negative ones with zero. A compact expression states the rule without promising a particular machine-code branch pattern.

    branchfree. Account access required.

  • One Shared Counter

    Adding every observation to one atomic is a contrasting reduction design. It is easy to express but concentrates all updates on shared state.

    atomics. Account access required.

  • Split the Work

    A shared total updated by several threads can lose updates. Instead, give each logical chunk its own scalar state and partial-result slot.

    reduction. Account access required.

  • Widen the Lane

    The earlier sum loop can give the compiler permission to reorganize independent work and a supported reduction. That permission is distinct from observing actual vector instructions.

    simd. Account access required.

  • Merge the Runs

    Merging preserves all observations while combining two sorted sequences. Two read pointers expose the smallest remaining candidates without sorting again.

    merge. Account access required.

  • Model the Block Reduction

    A two-level reduction separates local work from the final combine. The combine cannot read a block result until that block has finished writing it.

    blockreduce. Account access required.

  • Parallel Prefix

    The complete scan has ordered phases: totals, offsets, then independent local scans. Their boundaries explain both correctness and remaining sequential work.

    scan. Account access required.

  • Spawn and Fetch

    A task can return a whole chunk total, reducing scheduling overhead compared with one task per observation. The caller combines results only after they are available.

    tasks. Account access required.

  • Columns in Parallel

    Columns offer independent output work while retaining contiguous reads for an ordinary dense column-major matrix. Each column can own one total.

    matrix. Account access required.

  • Keep the Good Ones

    Counting and offsets let chunks write survivors concurrently without sharing an append position. Original order follows partition order and each chunk's local scan.

    compact. Account access required.

  • Scatter the Adds

    Scatter-add combines contributions that share a destination. Its sequential meaning is simple, but the read-modify-write operation requires coordination under real parallel execution.

    scatter. Account access required.

  • The Triple Loop

    Matrix multiplication combines every row of one matrix with every column of another. Writing the loops makes the shared dimension and output shape visible.

    matmul. Account access required.

  • Sort It Fast

    Chunk sorting and merging form a complete sorting pipeline. Sorting chunks may run concurrently, but merging cannot read a run before its producer finishes.

    merge. Account access required.

  • Task Statistics

    A task can return a tuple of partial statistics. Fetching a completed tuple keeps its fields together before the final componentwise merge.

    engine. Account access required.

  • The Pipeline

    A threaded fused query can summarize survivors without materializing them. Per-chunk counts and sums keep writes independent and make the final merge simple.

    engine. Account access required.

  • The Stencil

    Second differences measure local curvature in regularly sampled data. Their physical meaning depends on the spacing between samples.

    stencil. Account access required.