PARALLELISM  
Acknowledgements
 
Introduction
      Approaches to Parallelism
 
Magma Kernel Distributed Parallelism
      Introduction
      POSIX Threads
 
GPUs
 
Linear Algebra
      Multi-threaded Linear Algebra
      GPU-based Linear Algebra
      Hybrid Linear Algebra
 
Gröbner Bases
 
Polynomial System Solving
 
Polynomial Rings
 
Distributed Computation for Internal Algorithms
      Automatic Worker Startup
      Manual Worker Startup
 
Integer Factorisation
 
Ideal Class Group of Algebraic Number Fields
 
Integral Lattices
      Lattice Vector Enumeration
            Introduction
            Enumeration of Short Vectors
            A Single Shortest Vector
            Enumeration of Close Vectors
            A Single Closest Vector
            Intrinsics that Use Enumeration
            Theta Series
 
Linear Codes
      Minimum Weight
      Weight Distribution
 
User-Implemented Distributed Parallelism
      Introduction
      The Manager/Worker Model
      Basic Usage
      Basic Example
      Verbose Output
      Alternative Results Handling
      Task Groups
      Task Group Management
      Monitoring and Respawning Workers
      Implementing Distributed Parallelism
      A Note on Security
 
Timing
 
Bibliography







 
Introduction

      Approaches to Parallelism

 
Magma Kernel Distributed Parallelism

      Introduction

      POSIX Threads
            SetNthreads(n) : RngIntElt ->
            GetNthreads() : -> RngIntElt
            magma -t N

 
GPUs
      SetGPU(b) : BoolElt ->
      SetNGPUs(n) : RngIntElt ->
      GetNGPUs() : -> RngIntElt
      SetGPUDevices(S) : SeqEnum ->
      SetGPUDevice(k) : RngIntElt ->

 
Linear Algebra

      Multi-threaded Linear Algebra

      GPU-based Linear Algebra

      Hybrid Linear Algebra
            Example Par_LinearAlgebraThreaded (H5E1)
            Example Par_LinearAlgebraGPU (H5E2)
            Example Par_LinearAlgebraDualGPU (H5E3)
            Example Par_representations (H5E4)

 
Gröbner Bases
      Example Par_minrank (H5E5)
      Example Par_randsys (H5E6)
      Example Par_hfe (H5E7)

 
Polynomial System Solving
      Variety(I) : RngMPol -> [ ModTupFldElt ]
      VarietySize(I) : RngMPol -> RngIntElt

 
Polynomial Rings
      SetParallelFFT(b) : BoolElt ->
      Example Par_PolynomialMultiplication (H5E8)

 
Distributed Computation for Internal Algorithms

      Automatic Worker Startup
            StartWorkers(H, T) : MonStgElt, RngIntElt ->
            SetWorkerPort(P) : RngIntElt ->
            Example Par_StartWorkers (H5E9)

      Manual Worker Startup
            Example Par_SetWorkerPort (H5E10)

 
Integer Factorisation
      Example Par_integer-factorisation (H5E11)

 
Ideal Class Group of Algebraic Number Fields

 
Integral Lattices

      Lattice Vector Enumeration

            Introduction

            Enumeration of Short Vectors
                  ShortVectors(L, B) : Lat, RngIntElt -> SeqEnum
                  ShortVectors(L, A, B) : Lat, RngIntElt, RngIntElt -> LatElt
                  ShortestVectors(L) : Lat -> SeqEnum
                  Example Par_vector_enum (H5E12)

            A Single Shortest Vector
                  ShortVector(L, B) : Lat, RngIntElt -> LatElt
                  ShortVector(L, A, B) : Lat, RngIntElt, RngIntElt -> LatElt
                  ShortestVector(L) : Lat -> LatElt
                  Example Par_ShortVector1 (H5E13)

            Enumeration of Close Vectors
                  CloseVectors(L, w, B) : Lat, ModTupRngElt, RngElt -> SeqEnum
                  CloseVectors(L, w, A, B) : Lat, ModTupRngElt, RngElt, RngElt -> SeqEnum
                  ClosestVectors(L, w) : Lat, ModTupRngElt -> SeqEnum
                  Example Par_CloseVector1 (H5E14)
                  Example Par_CloseVector2 (H5E15)

            A Single Closest Vector
                  CloseVector(L, w, B) : Lat, ModTupRngElt, RngElt -> LatElt
                  CloseVector(L, w, A, B) : Lat, ModTupRngElt, RngElt, RngElt -> LatElt
                  ClosestVector(L, w) : Lat, ModTupRngElt -> LatElt
                  Example Par_CloseVector (H5E16)

            Intrinsics that Use Enumeration
                  Example Par_LatticeMinimum1 (H5E17)
                  Example Par_LatticeMinimum2 (H5E18)
                  Example Par_KissingNumber (H5E19)

            Theta Series
                  Example Par_theta_ex (H5E20)
                  Example Par_theta_ex_2 (H5E21)
                  Example Par_lat_72 (H5E22)

 
Linear Codes

      Minimum Weight
            Example Par_QRCodeMinimum (H5E23)
            Example Par_BKLC256Minimum (H5E24)

      Weight Distribution
            Example Par_CodeWeightDistribution (H5E25)

 
User-Implemented Distributed Parallelism

      Introduction

      The Manager/Worker Model

      Basic Usage
            DistributedManager(socket, items : parameters) : IO, SeqEnum ->
            DistributedWorker(host, port, work_function) : MonStgElt, RngIntElt, UserProgram ->

      Basic Example
            Example Par_BasicWorker (H5E26)

      Verbose Output
            SetVerbose("ManagerWorker", v) : MonStgElt, RngIntElt ->
            SetVerbose("ManagerWorkerTime", v) : MonStgElt, RngIntElt ->
            Example Par_Verbose (H5E27)

      Alternative Results Handling
            Example Par_ListResults (H5E28)
            Example Par_VariationOne (H5E29)
            Example Par_VariationTwo (H5E30)

      Task Groups

      Task Group Management
            Example Par_Advanced (H5E31)
            Example Par_AdvancedVariationOne (H5E32)

      Monitoring and Respawning Workers
            MonitoredDistributedWorker(host, port, work_function) : MonStgElt, RngIntElt, UserProgram ->
            Example Par_AdvancedVariationTwo (H5E33)

      Implementing Distributed Parallelism
            ExchangeVersions(I) : IO ->
            ReadObject(I) : IO -> Any
            WriteObject(I, x) : IO, Any ->
            AsyncReadObject(I) : IO ->
            AsyncWriteObject(I, x) : IO, Any ->
            WaitForIO(R : parameters) : SeqEnum -> SeqEnum
            WaitForIO(R, W : parameters) : SeqEnum, SeqEnum -> SeqEnum, SeqEnum
            Example Par_mw-trans (H5E34)

      A Note on Security

 
Timing
      Example Par_Time1 (H5E35)

 
Bibliography

[Next][Prev] [Right] [____] [Up] [Index] [Root]


Version: V2.29 of Fri Nov 28 15:14:01 AEDT 2025