Rate This Document
Findability
Accuracy
Completeness
Readability

Using KUPL to Accelerate the KML Direct Solver

KUPL provides parallel acceleration through optimized thread scheduling and task allocation for the math library's direct solvers. Also, KUPL APIs are now exposed for external integration. The KML direct solver (ksolver) has already integrated KUPL's dynamic scaling capabilities to optimize certain matrix resolution. Users can enable KUPL acceleration for ksolver seamlessly by configuring the relevant environment variables as follows:

  1. Install HPCKit on a node and compile ksolver_testcase by referring to the Kunpeng HPCKit 26.1.RC1 Developer Guide. Note that libksolver.so in HPCKit needs to be linked when compiling ksolver_testcase.
  2. Execute the ksolver_testcase binary and set the environment variable KML_DSS_SCHE_MODE to KUPL to enable dynamic scaling. The default value of this environment variable is static, indicating that a static scheduling policy is used, without load balancing optimization.

    Example:

    1
    KML_DSS_SCHE_MODE=KUPL OMP_PROC_BIND=close OMP_NUM_THREADS=64 taskset -c 0-63 ksolver_testcase
    

    If the following information is not displayed, the command is successfully executed. If the following information is displayed, the .so directory structure is modified after HPCKit is downloaded.

    [warn]: KUPL dynamic mode is not available, fallback to builtin dynamic mode