The Message Passing Interface (MPI) was published as a standard in 1992. Since then, many implementations have been developed. The MPICH library is one of the most well-known and freely available implementations. These libraries allow for the simplification of parallel computing on clusters and parallel machines. The system provides the developer with an easy-to-use set of functions for point-to-point and global communications. The details of how the actual communication takes place are hidden from the programmers, allowing them to focus on the domain-specific problem at hand. Communication between nodes on such systems is carried out via high-speed cabled interconnects (Gigabit Ethernet and upwards). The world of mobile computing, especially mobile phones, is now a ubiquitous technology. Mobile devices do not have any facility to allow for connections using traditional high-speed cabling; therefore, it is necessary to make use of wireless communication mechanisms to achieve interdevice communication. The majority of medium- to high-end phones are Bluetooth-enabled as standard, allowing for wireless communication to take place. The Mobile Message Passing Interface (MMPI) provides the developer with an intuitive set of functions to allow for communications between nodes (mobile phones) across a Bluetooth network. This chapter looks at the MMPI library and how it may be used for parallel computing on mobile phones (Smartphones).
The Bluetooth wireless communications system was named after Harald Blatand (Bluetooth) who was king of Denmark from about 958 a.d. to 968 a.d. He was renowned for getting people to talk, and thus his name was given to the technology. Sevn Mattisson and Jaap Haartsen working at Ericsson Mobile Platforms, Sweden, in 1994, developed the original specification. Formalized by the Bluetooth Special Interest Group (SIG) in 1998, it is now a standard form of wireless communications the world over. It is divided into three classifications pertaining to the maximum permitted power and effective range. Class two-devices are the typical standard found in the majority of mobile devices having a maximum permitted power of 2.5mW (4dBm) and a range of approximately 10 meters, thus giving an acceptable range in relation to its power cost. Class-one devices have higher power requirements (100mW (20dBm)) and thus are more suited to powered devices such as desktop PCs. The class-one device has a range of 100 meters. Class-three devices have a range of about 1 meter and a maximum power consumption requirement of 1mW. At present, there are almost 2,000 different Bluetooth devices on the market, including application areas such as: gaming, audio and visual, input, medical, headsets, phones, personal computers, and office equipment.
Key Terms in this Chapter
Piconet: This is a more advanced Bluetooth network topology, taking the form of a star network that allows for a total of eight devices to be connected at any one time, comprising a master and slave arrangement.
MMPI: The Mobile Message Passing Interface, an MPI-like library designed for Bluetooth-enabled mobile devices.
Device Discovery: A process whereby a Bluetooth-enabled device will carry out a search within its range (typically 10 meters for a mobile device) to find other active Bluetooth devices that have registered themselves as visible to other devices.
Smartphones: High-end 3G capable phones, many offering advanced Java APIs such as Bluetooth JSR-82, the Location API JSR 179, and the Mobile 3D Graphics (M3G) API JSR184; they typically feature facilities such as Bluetooth and digital cameras ranging from 1 to 10 megapixels.
Point-to-Point: The simplest form of Bluetooth network that can be formed, allowing two devices to communicate with each other. This is the most common form of Bluetooth network in use and can be readily seen in Bluetooth-enabled hands free mobile phone kits.
Bluetooth: A low-power, radio frequency, wireless communications technology that is becoming more and more widespread to allow mobile devices to communicate with each other.
MIDlet: A Java-based program designed to run on a mobile device that has a virtual machine capable or running CLDC-/MIDP-based programs. The majority of today’s mobile phones ship as standard with an inbuilt Java Virtual Machine, making Java the predominant platform for mobile development.
Scatternet: A Bluetooth network comprised of two or more interconnected Piconets connected by a node (Bridge) common to both networks.