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!
BMDFM dynamic scheduling subsystem performs an efficient SMP emulation of Tagged-Token DFM to provide the transparent dataflow semantics for applications.
Every machine supporting ANSI C and POSIX/SVR4-IPC may run BMDFM.
BMDFM is provided as compiled multi-threaded versions for:
- x86: Linux/32, FreeBSD/32, OpenBSD/32, NetBSD/32, MacOS/32, SunOS/32, UnixWare/32, Minix/32, Android/32, Win-UWIN/32, Win-SFU-SUA/32;
- x86-64: Linux/64, FreeBSD/64, OpenBSD/64, NetBSD/64, MacOS/64, SunOS/64, Android/64;
- VAX: Ultrix/32;
- Alpha: Tru64OSF1/64, Linux/64, FreeBSD/64;
- IA-64: HP-UX/32, HP-UX/64, Linux/64, FreeBSD/64;
- XeonPhiMIC: Linux/64;
- MCST-Elbrus: Linux/32, Linux/64;
- PA-RISC: HP-UX/32, HP-UX/64, Linux/32;
- SPARC: SunOS/32, SunOS/64, Linux/32, Linux/64, FreeBSD/64;
- MIPS: IRIX/32, IRIX/64, Linux/32, Linux/64;
- MIPSel: Linux/32, Linux/64, Android/32, Android/64;
- PowerPC: AIX/32, AIX/64, MacOS/32, MacOS/64, Linux/32, Linux/64, FreeBSD/32, FreeBSD/64;
- PowerPCle: Linux/32, Linux/64;
- S/390: Linux/32, Linux/64;
- M68000: Linux/32;
- ARM: Linux/32, Linux/64, Android/32, Android/64;
- ARMbe: Linux/64;
- and a limited single-threaded version for x86: Win/32.
Extended list of supported platforms.
See End User License Agreement (EULA).
End-user licence agreement:
End User License Agreement
1. The BMDFM Software is distributed to an end user ('End User') as a binary code at no charge.
2. End User accepts a non-exclusive, non-transferable, royalty-free use of the BMDFM Software for non-commercial purposes. Any commercial use requires a separate license. End User may build own applications and create derivative works based on the BMDFM Software. End User has specific rights to create additional copies of the BMDFM Software as necessary for archival purposes and to modify the BMDFM Software as necessary to allow it to operate on the End User's equipment. End User may not reproduce and distribute the BMDFM Software.
3. End User agrees to respect and not to remove, obliterate, or cancel from view any copyright, trademark, confidentiality or other proprietary notice, mark, or legend appearing on the BMDFM Software or output generated by the BMDFM Software, and to reproduce and include same on each copy of the BMDFM Software.
4. End User agrees not to disassemble, decompile or reverse engineer the BMDFM Software, or any portion thereof.
5. End User further acknowledges that all copies of the BMDFM Software in any provided form are the sole property of the BMDFM official suppliers. End User shall not have any right, title, or interest to any such BMDFM Software or copies thereof except as provided in this EULA, and further shall secure and protect all BMDFM Software and documentation consistent with maintenance of the BMDFM proprietary rights therein.
6. The BMDFM Software is provided AS IS. End User agrees that the BMDFM official suppliers shall not be liable for any costs, damages, fees, or other liability, nor for any direct, indirect, special, incidental, or consequential damages with respect to any claim by End User or any third party on account of or arising from this EULA or use of (or inability to use) any portion of the BMDFM Software.
7. THE EXPRESS WARRANTY STATED IMMEDIATELY ABOVE IS GIVEN IN LIEU OF ALL OTHER WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.