Equation Solution  
    High Performance by Design
Navigation Tree  
Home  
'- - Programming Tools
'- - Parallel Computing
|     '- - LAIPE
|     '- - LAIPE2
|     '- - neuLoop
|     '- - MTASK
|           '- - Java MTASK
'- - Blog
'- - In-Situ Evaluation
'- - Numerical Analysis
'- - Structural Mechanics
|     '- - IFAS
|     '- - mCable
'- - Write Us
|     '- - Feedback  
|     '- - Info  
|     '- - Support  
|     '- - Webmaster  
'- - Privacy Policy



MTASK: parallel programming language


        MTASK is a subroutine-based parallel programming language for memory-sharing environments. The package was released in 1994 for fortran. Instructions that can be implemented in parallel are written into subroutines, and then dispatch onto tasks for parallel computing. The concept is originated in 1980s supercomputing. Applications explicitly handle parallelism, task synchronization and critical section.

        MTASK contains three basic components a parallel application requires. For example,
  • "Task Manipulation" that dispatches, synchronizes, and terminates tasks.
  • "Parallel Lock" that handles critical sections.
  • "Parallel Event" that synchronizes tasks.
        MTASK has three essential components only, simplest parallel programming language in the world. It is simple, but can yield highly efficient parallel perforance. For example, highly efficient parallel direct solvers, LAIPE, are programmed in MTASK. MTASK is most suitable for skillful users. In MTASK, applications do not need compiler to reconstruct for parallel execution. Programmer has a full control of his application.

        MTASK is not an auto-parallelizer, either. In MTASK, application should explicitly handle parallelism. Programming with explicit parallelism is more difficult than applying auto-parallelizer or parallelizing DO LOOPS. However, explicit parallelism may develop highly efficient parallel applications, and is the most efficient way to employ multiprocessors and multicores. For MTASK manual, click here.