Skip to content

Flaky: NativeLinAlg.dot matrix-matrix ComplexDouble returns wrong result on Linux #282

@devcrocod

Description

@devcrocod

Multik version

0.3.0

Module

multik-openblas

Platform

JVM

Operating System

Linux

Description

NativeLinAlg.dot for matrix-matrix multiplication with ComplexDouble produces incorrect results intermittently on Linux (Ubuntu 22.04.5 LTS, gcc-12 12.3.0, JDK 21 Temurin). The test uses small integer ComplexDouble matrices with exact expected values and assertEquals — no tolerance. Failed in 3 out of 4 CI runs, making it the most frequently failing test.

Reproducer

val matrix1 = mk.ndarray(
    mk[mk[ComplexDouble(1, 2), ComplexDouble(3, 4)],
        mk[ComplexDouble(2, 3), ComplexDouble(4, 5)],
        mk[ComplexDouble(3, 4), ComplexDouble(5, 6)]]
)
val matrix2 = mk.ndarray(
    mk[mk[ComplexDouble(9, 8), ComplexDouble(7, 6), ComplexDouble(5, 4)],
        mk[ComplexDouble(8, 7), ComplexDouble(6, 5), ComplexDouble(4, 3)]]
)

val actual = NativeLinAlg.dot(matrix1, matrix2)
assertEquals(expected, actual) // Fails intermittently

Additional information

Flaky — failed in 3/4 CI runs.
All failures are AssertionFailedError at NativeLinAlgTest.kt:134.
CI runs: 22511673326, 22511741037, 22511767151.
Environment: Ubuntu 22.04.5 LTS, gcc-12 (12.3.0), g++-12, JDK 21 Temurin, x86_64.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ai-generatedIssues or pull requests created fully or partially with the help of AI toolsbugSomething isn't working

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions