BMDFM Official Site

 
  • BMDFM
  •  
  • Overview
  • Features
  • Parallelism
  • Platforms
  • Performance
  • Development
  • Download Area
  • Contact
  • EULA
  •  

    What is BMDFM?

    BMDFM (Binary Modular DataFlow Machine) is software, which enables running an application in parallel on shared memory symmetric multiprocessors (SMP) using the multiple processor cores to speed up the execution of single applications.
    BMDFM automatically identifies and exploits parallelism due to the static and mainly DYNAMIC SCHEDULING of the data flow instruction sequences derived from the formerly sequential program ensuring unique parallel correctness.
    No directives for parallel execution are required!
    No highly knowledgeable parallel programmers are required!

    [ top ]



    What does BMDFM provide to a user?

    A user understands BMDFM as a virtual machine, which runs every statement of an application program in parallel having all parallelization and synchronization mechanisms fully transparent. The statements of an application program are normal operators, which any singlethreaded program might consist of - they are variable assignments, conditional executions, loops, function calls, etc. BMDFM has a rich set of standard operators/functions, which can be extended by user functions written in C/C++.
    In comparison with the recent general methodology of sequential code parallelization, which is based on static analysis, BMDFM uses dynamic scheduling to define and to run code fragments in parallel. It means that data computed at run time will define further branches for parallel processing (Data Flow principle). It also means that loops of an application program will be dynamically unrolled to process several iterations in parallel.

    [ top ]



    Which granularity of parallelism is used in BMDFM?

    BMDFM exploits fine-grain parallelism. All instructions of an application will be processed in parallel. In addition, it is possible to exploit coarse-grain parallelism that will decrease costs spent on dynamic scheduling. To achieve this a portion of C code can be defined as a user function, which will be treated by the dynamic scheduler as one seamless instruction.

    [ top ]



    Which platforms may run BMDFM?

    Every machine supporting ANSI C and shmctl()/semctl() UNIX SVR4 IPC calls may run BMDFM.
    Obviously, BMDFM is able to accelerate the execution time of an application only when installed on a multiprocessor supercomputer implementing an SMP paradigm (hardware mapping of distributed memory into virtual shared memory, cache coherent non-uniform memory access ccNUMA, UMA!, etc.)
    BMDFM provides an already compiled fully multithreaded version for:
    • Intel / Linux / 32bit, Intel / FreeBSD / 32bit,
    • IA-64 / Linux / 64bit, AMDx86-64 / Linux / 64bit,
    • Alpha / Tru64 OSF1 / 64bit, Alpha / Linux / 64bit, Alpha / FreeBSD / 64bit,
    • PA-RISC / HP-UX / 32bit, PA-RISC / HP-UX / 64bit,
    • SPARC / SunOS / 32bit, SPARC / SunOS / 64bit,
    • MIPS / IRIX / 32bit, MIPS / IRIX / 64bit,
    • RS6000 / AIX / 32bit, RS6000 / AIX / 64bit,
    • PowerPC / MacOS / 32bit,
    • additional Linux ports: ARM, PA-RISC, M68K, MIPS, MIPSEL, PPC, PPC64, S390, SPARC, SPARC64,
    • additional HP-UX ports: x86, IA-64,
    • additional SunOS ports: x86, x86-64,
    • Intel / Win32-SFU, Intel / Win32-UWIN
    • and a limited singlethreaded version for Intel / Win32.
    A machine with one CPU can be used for development and test purposes only as it is not possible to get real acceleration on one CPU. But as soon the application program has reached a certain state of maturity it can be moved without modifications to BMDFM installed on a multiprocessor mainframe.

    [ top ]



    How good does BMDFM perform on the affordable SMP machines?

    The following table shows the exection times and speedups of 64-bit BMDFM running the NAS Parallel Benchmarks 2.3 on the 8-way POWER4 IBM p690 SMP server.

    Benchmark Class Baseline
    (sec.)
    BMDFM
    (sec.)
    Speedup
    EP A 140.00 17.90
      7.82
    C 2266.00 286.47
      7.91
    CG A 10.36 2.57
      4.03
    C 2556.00 339.58
      7.53
    IS A 9.16 1.78
      5.15
    C 361.42 58.90
      6.14
    MG A 20.18 3.31
      6.10
    C 516.12 70.14
      7.36
    FT A 27.95 3.94
      7.09
    C 1575.56 215.97
      7.30
    BT A 860.84 159.54
      5.40
    C 20764.48 3039.68
      6.83
    SP A 410.32 115.50
      3.55
    C 9888.60 1708.99
      5.79
    LU A 490.38 91.07
      5.38
    C 13400.40 1798.41
      7.45

    [ top ]



    Where is BMDFM being developed?

    The BMDFM project is carried out in the Technical University Munich and Georg-Simon-Ohm University of Applied Sciences Nuremberg (Germany).

    Supervisor: Prof. Dr. Arndt Bode

    Supervisor: Prof. Dr. Herbert Eichele

     Developer: Dr. Oleksandr Pochayevets

    [ top ]



    © 2002-2014 by BMDFM - mailto: Webmaster