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]
|