This invention relates to portable computing devices and, more particularly, to mechanisms and techniques to enable portable computing devices to collectively execute one or more tasks.
Electronic digital computational devices like smart phones, tablets, tablet PCs, laptops, netbooks, Personal Digital Assistants (PDAs), handhelds, and other portable computing devices (collectively called ‘Mobile Devices’) have become a critical part of the life of many individuals and businesses. Advances in these Mobile Devices have enabled significant computing and previously unavailable data communication capabilities. Availability and affordability of these devices is also expanding with their accompanying proliferation.
Mobile Devices have evolved considerably over the past decade and today there is an abundance of small, yet powerful wireless mobile computing devices. Many of these devices have considerable compute power. High-end PDAs and smartphones have powerful computing power along with sensors and Digital Signal Processor (DSP) capabilities. Some of the high-end Mobile Devices even include multiple processors enabling multi-processing capabilities. The future trend is to incorporate more and more powerful multi-core processors into Mobile Devices.
Along with the evolution of the computing power, communication capabilities of the mobile computing devices have also evolved. Today, most high-end mobile computing devices have decent communication capabilities of 20-40 MHz of bandwidth. It is expected that this capability will also continue to grow in the future. Newer technologies like WiMAX are promising to deliver gigahertz of bandwidth for Mobile Devices in the very near future.
The primary intent and purpose of mobile computing devices are to allow users to stay connected, with ability to perform many tasks remotely. Remote tasks include business, financial, personal, and entertainment applications. Mobile Devices of today have succeeded in their primary intent and have even exceeded the expectations of many. This has opened new possibilities beyond serving personal and business needs of individuals.
While individually these Mobile Devices are capable of serving the needs of most users, collectively they present unique computing possibilities. It is possible to use these Mobile Devices collectively to address applications that were traditionally reserved for high-end computers. Enabling Mobile Devices to work together in cluster configurations or parallel processing configurations will enable many new applications for Mobile Devices.
While mobile computing devices cannot match the compute power of supercomputers and traditional clusters of High Performance Computers (HPC), they can provide adequate power to perform some critical operations when operating collectively. In certain applications like real-time monitoring, the proximity of Mobile Devices to the subject will have a distinct advantage over high performance computers located remotely.
Along with the compute power, Mobile Devices need to have adequate communication capabilities to share tasks. Wireless networking has evolved over the past decade and today, Wireless Fidelity (Wi-Fi) has become a popular industry standard. Higher performance and more robust Worldwide Interoperability for Microwave Access (WiMAX) enables gigabits bit rates of wireless communication and is gaining popularity in high end Mobile Devices.
Wireless Local Area Network (WLAN) using Wi-Fi (IEEE standard 802.11) enables 20-40 MHz of bandwidth today while WiMAX (IEEE standard 802.16) offers a bandwidth of 1 GHz. While this does not compare to the multi-gigahertz of bandwidth available in the HPC, it is adequate for carefully architected mobile cluster systems.
Using the Wi-Fi WLAN communication capabilities, industry has developed several mechanisms to network mobile computing devices. Wi-Fi has evolved from the initial version in 1997 at 2.4 GHz frequency to version ‘n’ in 2009 at 5 GHz frequency and up to 40 MHz bandwidth with a data rate of 150 Mbit/s. More importantly, from a cluster perspective, this version extends the outdoor range to 820 ft (250 m) and supports four Multiple-Input and Multiple-Output (MIMO) streams.
MIMO is the method of utilizing multiple antennas for wireless communications. For wireless networking, MIMO technology appears in Wi-Fi technology, greatly enhancing their capability over the single-antenna counterparts. While MIMO is primarily used by Wi-Fi routers today, it can also be used by mobile computing devices for cluster configuration. MIMO Wi-Fi equipment utilizes the same network protocols and signal ranges that non-MIMO routers do. The MIMO products achieve higher performance by more aggressively transmitting and receiving data over Wi-Fi channels. MIMO signaling technology can increase network bandwidth, range, and reliability at the cost of potential interference with other wireless equipment.
Another technique available in the industry is Virtual Wi-Fi. It is a virtualization architecture for WLAN cards that abstracts a single WLAN card to appear as multiple virtual WLAN cards to the user. The user can then configure each virtual card to connect to a different wireless network. Virtual Wi-Fi allows a user to simultaneously connect his machine to multiple wireless networks using just one WLAN card. This feature can be used effectively in cluster systems. Virtual channels can be used as dedicated control channels and for dedicated data communication.
While the compute power and communication capabilities of Mobile Devices are adequate for performing compute intensive tasks, mechanisms to connect them effectively to harness the available resources is missing.
Industry has developed several mechanisms to connect multiple Mobile Devices. One technology used to network mobile computing devices is MANET, sometimes called a mobile mesh network. MANET is a self-configuring network of Mobile Devices connected by wireless links. Each device in a MANET is free to move independently in any direction, and will therefore change its links to other devices frequently. Each must forward traffic unrelated to its own use, and therefore, be a router. The primary challenge in building a MANET is equipping each device to continuously maintain the information required to properly route the traffic. Such networks may operate by themselves or may be connected to the larger Internet. MANETs are a kind of wireless ad hoc network that usually have a routable networking environment on top of a Link Layer. They are also a type of mesh network, but many mesh networks are not mobile or not wireless.
MANET may be compared to Local Area Networks (LAN) in desktop computer environment. Like LAN, MANET allows Mobile Devices to share data. While MANETs provides mechanisms for networking Mobile Devices, it is not a cluster mechanism. While it provides loose connectivity for Mobile Devices to communicate, but does not provide a control cluster mechanism to share tasks.
As seen, advances in semiconductor and wireless technology have resulted in powerful mobile computing devices that are compute capable as well as have decent communication capabilities. Often, these Mobile Devices are also equipped with sensors along with the DSP capabilities. While quite powerful as individual devices for personal use, they do not have the necessary capability to address complex real-time computational challenges.
There is a growing need to solve tasks involving information and decision processing in the field, close to where events are actually happening. While individual Mobile Devices cannot perform this task, it is possible to distribute the task between several such devices available in the field. It is possible to take advantage of multiple Mobile Devices present in the location in cluster configuration to perform complex computational tasks.
Despite availability of powerful devices and adequate communication capabilities, there are several barriers preventing Mobile Devices from executing high performance real-time mobile computation by sharing task with other Mobile Devices.
Some of the Barriers are:
1. By nature, Mobile Devices are in motion and change their physical locations. This dynamic geographic positioning of the compute units introduces complexities into cluster systems. It poses problems for setting up reliable cluster system in a regular configuration with known neighbors.
2. Availability of any device cannot be guaranteed as devices keep moving in and out of the communication range of a potential cluster system. It poses problems for setting up reliable cluster system when devices are moving in and out of the range.
3. Availability of bandwidth is a limitation due to the limited wireless connectivity in the Mobile Devices. This causes problems for transmitting data and results between various cluster nodes.
4. Power usage is the most critical issue with any Mobile Device. The power constraints in the Mobile Device restrict the amount of computation that can be performed on a Mobile Device. As adding additional resources will increase the use of this precious commodity, it inhibits the addition of additional resources.
5. Most Mobile Devices are area constrained. Adding components to the system could be an issue.
6. Securing the communication between various devices is another issue as wireless communication is inherently insecure. Security mechanism of today, such as encryption, will not work well for Mobile Devices as they require computation demanding power.
Surmounting these barriers is critical to enabling high compute power at the field by utilizing Mobile Devices to share tasks.
It will be advantageous to have a robust mechanism that will enable multiple Mobile Devices to work in tandem to solve computation intense problems. It will be further advantageous for the mechanism to surmount the barriers mentioned above. Preferably, the mechanism should minimize any additional demand on power, bandwidth, and area of the Mobile Devices.
It will be advantageous for the mobile cluster mechanism to be flexible to accommodate various cluster schemes. It will be further advantageous for the mechanism to provide controlled, secure environment to selectively enable qualified Mobile Devices to participate in cluster computations.
The problems outlined above are in large part solved by a design in accordance with the various embodiments of the invention described here. Embodiments of this invention are adaptable for use in any Mobile Device, computer systems, or other digital designs.
This invention contemplates mechanisms to harness the compute power of several mobile computing devices working towards solving real-time complex problems in the field.
The invention contemplates an innovative cluster framework, Mobile Cluster Mechanism (MCM). MCM provides a framework that enables Mobile Devices to work in conjunction with each other towards solving complex computational problems. Specifically, it enables a controlled environment to securely allocate task amongst selected devices.
MCM may be incorporated in Mobile Devices to enable capabilities to perform real-time computations at the field. MCM enables communication with other similar Mobile Devices in the vicinity to form a cluster environment. A cluster environment is a setup in which two or more devices communicate with each other to execute a given task. MCM also enables dynamic real-time resource allocation. It detects the need for additional computing resources in a Mobile Device based on real-time data analysis. MCM manages the information about other Mobile Devices that are available for computation at a given time. It also provides secure access to these other Mobile Devices when required.
This invention provides various embodiments of MCM that provide mobile cluster framework enabling task sharing among multiple mobile computing devices.
In one embodiment, MCM provides a framework that enables multiple Mobile Devices to work in tandem to solve complex real-time problems.
This invention contemplates various means for implementing MCM. In one embodiment, MCM may be implemented in software. In another embodiment, MCM may be implemented in firmware. In another embodiment, MCM may be implemented in hardware. In yet another embodiment MCM may be implemented as a combination of hardware, software, and/or firmware.
In one embodiment, MCM may be implemented as additional hardware to function alongside mobile computing devices to enhance the computing power of the Mobile Device.
In one embodiment, additional hardware may be a co-processor. In another embodiment, the co-processor may be developed as a chip incorporated into the Mobile Device.
In one embodiment, MCM provides mechanisms to detect and manage resources in a mobile computing device.
In one embodiment, MCM enables the ability for a Mobile Device to dispatch a task to other Mobile Devices.
In one embodiment, MCM enables Mobile Devices to lend their compute power to other Mobile Devices towards executing a given task.
The invention also contemplates on various mechanisms that can be used by Mobile Devices to allocate tasks. In one embodiment, MCM may use the positional information of Mobile Devices to establish cluster configuration. In another embodiment, MCM may use this positional information to allocate tasks.
The invention further contemplates mechanisms to optimize computation environment.
While the preferred embodiments of the invention are primarily beneficial in Mobile Devices, other embodiments of the invention further contemplates using the mechanism for desktop and other computing devices with communication capabilities.
A further understanding of the nature and advantages of the present invention may be realized by reference to the remaining portions of the specification and the drawings.
So that the manner in which the above recited advantages and features of the present invention, as well as others which will become apparent, are attained and can be understood in detail, a more particular description of the invention summarized above may be had by reference to the embodiment thereof which is illustrated in the appended drawings, which drawings form a part of this specification.
It is to be noted that the appended drawings only illustrate the typical embodiments of the invention and therefore should not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.
While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawing and will herein be described in detail. It should be understood, however, that the drawings and detailed description thereto are not intended to limit the invention to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the present invention as defined by the appended claims.
Turning now to
As shown in
Application Processors 30 is responsible for performing most of the computational operations for Mobile Device 10. CPU 32 is the core of Mobile Device 10. DSP 34 is used in high-performance Mobile Device to provide high quality sound and graphic display. Memory Controller 36 controls the operation of Memory 16. Memory 16 may include of hard drive, SDRAM, DDR, DRAM, Flash RAM, and other forms of magnetic, semiconductor, optic, and/or other forms of memory devices. Communication Controller 38 enables Mobile Device 10 to interface with external world via Connectivity Unit 20. Connectivity Unit 20 enables Mobile Device 10 to communicate via various wired and wireless network media, such as Ethernet, optics, Bluetooth, Global Positioning System (GPS), Global System for Mobile communications (GSM) modem, Wi-Fi, WiMAX, and others.
1/0 Controller 40 of the Application Processor 30 enables Mobile Device 10 to connect to various 1/0 Devices. 1/0 Device Keyboard/Touchscreen Device 42 allows users to either type or touchscreen the data. 1/0 Device 1/0 port 44 allows various 1/0 devices such as the USB devices to be connected to Mobile Device 10. Audio device 46 provides audio interface to Mobile Device 10 such as microphones, speakers etc. Camera 48 captures pictures for Mobile Device 10. Display 50 allows users to control and interact with the Mobile Device 10.
MCM Unit 100 introduces the capability for Mobile Device 10 to work in tandem with other Mobile Devices 10 equipped with MCM Unit 100. It will also enhance the compute power of Mobile Device 10.
Turning now to
It should be noted that the figure shows a sample deployment. It shows that MCM can be effectively used in random configuration. While the invention contemplates several embodiments, MCM framework is suited equally well to all configurations. In one embodiment, Mobile Devices 10 are configured in complete mesh topology where in each Mobile Device 10 will connect to every other Mobile Device 10 in the field. In another embodiment, they may be configured in torus configuration. In another embodiment, they may be configured in tree configuration. In yet another embodiment, they may be configured in a ring configuration. In another configuration, they may be configured in linear configuration. In yet another embodiment, Mobile Devices 10 may be configured in partial mesh configuration. MCM allows for both random and other configurations used in wired High Performance Computing (HPC) field.
The invention allows for any number of devices to participate in MCM. There is no limitation on the number of Mobile Devices 10 in a given embodiment. In one embodiment, there may be two Mobile Devices 10. In another embodiment, there may be thousands of Mobile Devices 10. The invention applies equally well to any number of Mobile Devices 10.
In
In one embodiment, Communication Channel 110 represents unidirectional connections. In another embodiment, Communication Channel 110 represents bidirectional connections.
In one embodiment, each Communication Channel 110 represents one connection. In another embodiment, Communication Channel 110 represents multiple channels of connections. In another embodiment, Communication Channel 110 represents one or more virtual channels of communications.
MCM Unit 100 of Mobile Devices 10 establishes and controls the cluster operations. Referring to
In this manner, MCM enables range extension allowing large number of Mobile Devices 10 to form cluster environment for sharing computation tasks.
For a device to participate in MCM, the device should have MCM Unit 100 of
In addition to being equipped with MCM Unit 100, Mobile Devices 10 must be setup to participate in a given MCM Environment. An MCM Environment is an MCM setup that enables certain MCM enabled devices to work together. Each MCM enabled Mobile Device that can participate in a given MCM environment has to be set up to participate in the given environment.
Turning now to
Mobile Device 10-1, Mobile Device 10-3, Mobile Device 10-4, Mobile Device 10-5, Mobile Device 10-6, and Mobile Device 10-8 belong to MCM Environment 102a and can share tasks among themselves. Mobile Device 10-7 and Mobile Device 10-9 belong to MCM Environment 102b and can share tasks between them. Devices belonging to MCM Environment 102a cannot share tasks with devices of MCM Environment 102b and vice-versa.
In one embodiment, Mobile Device 10 may participate in more than one MCM Environment 102.
In the figure, Mobile Devices 10 are shown to connect to up to four other Mobile Devices 10. Mobile Device 10-1 is connected to Mobile Device 10-3, Mobile Device 10-5, Mobile Device 10-6, and Mobile Device 10-8 directly.
Mobile Device 10-1 connects to Mobile Device 10-4 through Mobile Device 10-3 or Mobile Device 10-6 indirectly. The indirect connection will be dictated by factors such as availability of direct connection channel and proximity.
Mobile Device 10-7 and Mobile Device 10-9 belong to MCM Environment 102b. These devices cannot participate in activities of MCM Environment 102a.
Mobile Device 10-2 is not equipped with MCM Unit 100. Therefore, it cannot participate in either MCM Environment 102a or MCM Environment 102b. Mobile Device 10-5 will work with Mobile Device 10-8 and Mobile Device 10-3 even though Mobile Device 10-2 is physically closer to it.
While establishing an MCM Environment, Mobile Device 10 that is establishing the environment checks for the available devices in its range. In one embodiment, if a Mobile Device 10 is be beyond the range of another Mobile Device 10, it can connect indirectly to this Mobile Device 10 via other Mobile Devices. This enables to expand the range of MCM through indirect connectivity.
Indirect connectivity is crucial in a mobile environment as the devices will be in motion, and could leave the area before it has finished executing its assigned task. This dynamic nature of Mobile Devices needs to be taken into account in a mobile cluster system. MCM allows for such ‘roaming’ situations.
Accounting for the roaming of Mobile Devices is a crucial issue in implementing a stable mobile cluster system. MCM handles this problem with several innovative mechanisms.
In one embodiment, MCM uses indirect connectivity to handle roaming. Referring to
In another embodiment, MCM allows for a Mobile Device that needs to move out of the range to sign-off with warning. This allows the task-assigning device to reassign the task to other units. For instance, in
In one embodiment, roaming is handled by Mobile Devices that are about roam out of the range devices pre-warning other devices in the environment about its potential roaming. In one embodiment, this is achieved by border devices broadcasting their exit.
In one embodiment, positional information of the Mobile Devices may be used to manage roaming. In one embodiment, this positional information may be relative position of Mobile Devices 10. In another embodiment, this positional information may be geographic co-ordination. In one embodiment, these geographic co-ordinates may be determined by GPS. In this embodiment, by knowing the GPS co-ordinates of devices in MCM, Mobile Devices 10 in MCM can determine when a device is near the boundary of a MCM range and could potentially move out-of-range.
When scheduling a task, a Mobile Device will consider other Mobile Devices in its environment. MCM allows the devices to check for the workload of a device before assigning new tasks. For instance, Mobile Device 10-1 will check to see if any of its direct connect nodes are available to execute a task. It may realize that Mobile Device 10-8 is busy. It will then pass this device and assign the task to other devices.
In one embodiment, one or more Mobile Devices 10 may be designated as Master devices and other devices may be designated as Slave devices. In this setup, only Master devices can setup a MCM environment. Referring to
In one embodiment, there may be multiple Masters that share the environment management responsibility. In another embodiment, there may be multiple Masters with one or more designated as Primary Masters and other masters as Secondary Masters. Primary Masters setup and manage the environment. Secondary Masters monitor the environment. Secondary masters may become the active Masters if Primary Master becomes inactive, is not accessible, and/or is overloaded with tasks.
In another embodiment, there can be multiple Primary Masters, each Master being responsible for specific functions of MCM Environment. For instance, one Master may setup and manage devices. Another Master may allocate tasks. Another Master may distribute data and controls.
MCM operation involves initially setting up Mobile Devices 10 to participate in an MCM environment. A key part of this setup is MCM ID. Each Mobile Device with MCM Unit 100 is assigned a unique identifier, MCM ID. Typically, the MCM ID will be part of the MCM Unit 100. Each MCM enabled Mobile Device 10 will have at least one MCM ID associated with it. In one embodiment, Mobile Device 10 will be assigned one MCM ID. In another embodiment, Mobile Device 10 may have more than one MCM ID. For instance, if the device is part of two MCM environments, it may have two identifiers.
Turning now to
A sample MCM ID is shown in
The sample embodiment of MCM ID 120 in
Vendor ID 122 identifies a specific group, company, unit, or service provider that has the ownership or service of the Mobile Device 10. In one embodiment, the participation of a given Mobile Device 10 in a given MCM environment is restricted to one or more values of Vendor ID 122. In another embodiment, all values of Vendor ID 122 may be allowed to participate in a given MCM environment.
MCM enables a mobile cluster environment for task sharing towards solving complex computational problems in the field. An MCM Environment is a MCM setup that has several MCM enabled devices that can work in together. Environment 124 identifies one or more MCM environments that the Mobile Device 10 is allowed to participate. An MCM environment allows for controlled operation of a given scheme. Each MCM enabled Mobile Device that can participate in a given MCM environment has to be set up to participate in a given environment. In
Turning now to
Another embodiment of Environment 124 is shown in
Turning back to
In one embodiment, MCM ID may be implemented in software. In another embodiment, MCM ID may be implemented in hardware. In yet another embodiment, MCM ID may be implemented in firmware. In another embodiment, part of the MCM ID may be implemented in hardware, part in software, and/or in firmware.
In one embodiment, MCM ID may be fixed. In another embodiment, MCM ID may be programmable. In yet another embodiment, part of the MCM ID may be fixed and part programmable.
Turning now to
In
Control Module 150 controls MCM setup, operation, and management functions. It implements communication control, cluster functionality, and management of other MCM modules. This module may be implemented in software running on the Mobile Device. It can also be implemented hardware or firmware.
Processing module 160 executes the tasks assigned to it. It may be implemented in software or hardware in the Mobile Device. It can also be implemented as a plugin module that hosts a co-processor chip and a memory module. It will handle the execution of special algorithms needed to perform intended computations.
Resource Module 170 is responsible for dynamically managing the available devices, recognizing the demand for compute power, distributing tasks to devices, and managing dynamic allocation. This module may be implemented in either hardware or software.
All three of these MCM modules may be implemented in either hardware or software targeting various hardware and software platforms. In one embodiment, software modules may be developed in C/C++ and Java/C++ and hardware modules may be developed as Field Programmable Gate Arrays (FPGAs) or ASICs. Software (including firmware) and hardware implementations include many possible methods of implementations that are in practice in the industry.
The modular architecture of MCM enables a wide range of implementation options. In one embodiment, MCM is implemented in software. In another embodiment, it is implemented in hardware. In another embodiment, it is implemented as a combination of hardware, firmware, and/or software.
In one embodiment, all MCM modules may be implemented within Mobile Device 10. In another embodiment, all MCM modules are implemented as one or more add-on devices. In yet another embodiment, part of MCM is implemented in the Mobile Device and the rest on one in more add-on devices.
To illustrate the wide range of possible implementation of MCM, several embodiments are shown next.
Turning now to
Turning next to
Turning next to
In one embodiment, Control Module 150 is implemented in software as Control Module 150a, while Processing Module 160 and Resource Module 170 are implemented in hardware. In another embodiment, Both Control Module 150 and Resource Module 170 are implemented in software while Processing Module 160 is implemented in hardware.
In another embodiment, part of Control Module 150, Processing Module 160, and/or Resource Module 170 is implemented in software and the rest in hardware.
MCM may be implemented in more than one Mobile Device. For instance, software implementation of MCM Unit 100 of
While
MCM may be implemented in special add-on devices that function in conjunction with Mobile Devices.
Turning to
In one embodiment, Add-on Link 115 is a wireless link. It can use Radio Frequency (RF) link, WiFi type of wireless communication link, or special purpose wireless link.
In another embodiment, Add-on Link 115 may be a serial communication link such as an Ethernet, a parallel communication link such as cable, or a special purpose link such as the High-Definition Multimedia Interface (HDMI) link.
In yet another embodiment, Add-on Link 115 may be a connector such as a Universal Serial Bus (USB) port, a docking connector, or a special purpose connector.
As seen, there are numerous possible implementations for Add-on Link 115. Practically any of the industry standard connections and/or special purpose connections can be used for Add-on Link 115.
In the embodiment shown in
Along with MCM modules, Add-on Device 114 may implement other related components such as memory and power source.
While there are many embodiments possible,
Add-on Memory 116 consists of memory that may include one or all available memory media such as a hard disk, RAM, DRAM, ROM, EEPROM, Flash, or Optic memory.
Typically, Add-on Memory 116 assists in MCM executing special purpose tasks. In one embodiment, Add-on Memory 116 may also assist in the operation of Mobile Device 10. In another embodiment, Add-on Memory 116 may be pre-loaded with data needed for MCM operations.
In one embodiment, Add-on Power Unit 118 is a power supply unit that comprises of power source such as a battery. This battery supplies power to the Add-on Unit 114. Power is a crucial in commodity in Mobile Devices. In some applications, adding additional resource may tax this precious commodity. Add-on Unit 114 with Add-on Power Unit 118 alleviates this crucial problem.
In one embodiment, part of the MCM Unit 100 may reside on Add-on Unit. In another embodiment, Add-on Device 114 may not have Add-on Power Unit 118. In another embodiment, Add-on Device 114 may not have Add-on Memory 116.
Turning now to
In
Device Type 132 identifies the functionality of a given MCM Unit 100. The device could have all or some of MCM modules. It may also contain the configuration information of whether the device is set up to function as a Master or Slave in a given environment.
Associated Device 134 identifies which other devices are parts of this MCM Unit. Op Mode 136 defines the modes of operation, and Tasks and Settings 138 controls the execution of a task. Reserved 136 allows for additional functionalities in the future. Status 142 reflects the status of the device and the dynamic status of the execution of the assigned task. Other 144 is used for various operation specific tasks.
Mobile Devices 10 needs to be equipped with MCM Unit 100 to participate in MCM. Setting up MCM ID 120 and MCM Control Word 130, are essential part of the set up process.
Turning now to
MCM Installation 202 includes installing MCM components into Mobile Device 10. This includes both hardware and software components of MCM. In one embodiment, hardware may consist of one or more chips. In another embodiment, it may comprise of Intellectual Property (IP) incorporated into the Application Processor 30. In yet another embodiment, hardware may comprise of a plugin device such as Add-on Device 114. In one embodiment, software component may be installed in the Application Processor 30. In another embodiment, it may be installed into MCM hardware. In yet another embodiment, it may be installed into both Application Processor 30 and MCM hardware.
Following MCM Installation 202, Mobile Device 10 may be configured to run in one or more MCM Environments. Configuration 204 configures Mobile Device 10 to operate in one or more MCM Environments 102. The process of Configuration 204 includes setting up MCM ID 120 and Control Word 130.
Some embodiments may optionally include Information Setup 206. Information Setup 206 may load information required by specific operations of Mobile Device 10. In one embodiment, information is loaded into the Memory 16 of Mobile Device 10. In another embodiment, information is loaded into Add-On Memory 116 of Add-on Device 114.
In one embodiment, information loaded is control or algorithms to execute the operation. In another embodiment, information loaded may be data to be used by the operation. In yet another embodiment, both data and control may be loaded.
In some embodiments, as part of MCM Setup 200, Mobile Device 10 may be set up functionality it needs to execute. This is shown as Functionality Setup 208 in
Optionally, as part of the MCM setup, MCM Device may be set up to operate in various operation modes. Op Mode Setup 210 may set up Mobile Device to start the operation in certain mode. In one embodiment, Op Mode Setup 210 may set up Mobile Device 10 to operate in Secure Mode. In this mode, the device may participate in only specific environments and communicate exclusively with other secure devices.
In another embodiment, Op Mode Setup 210 may set up Mobile Device 10 to operate in Open Mode. In this mode, the device may participate in any MCM environment and communicate with any other devices.
In one embodiment, operating mode of a Mobile Device 10 is dynamic and can change after the initial set up performed by Op Mode Setup 210. In another embodiment, operating mode of a Mobile Device 10 is static and cannot change after the initial set up performed by Op Mode Setup 210.
Following MCM Installation 200, Mobile Device 10 will be ready to participate in MCM.
Multiple MCM devices may work in tandem to solve real-time computation problems in the field. To execute a particular task, they need to be set up in the field. Due to the dynamic nature of Mobile Devices, availability of a given device is not guaranteed. MCM considers this and enables the set up and operation of a dynamic environment.
MCM devices that have gone through MCM Setup 200 are ready to participate in one or more MCM environments. They will be configured with appropriate MCM ID 120 and MCM Control Word 130.
To operate in MCM, a MCM Environment 102 has to be set up. For a given MCM Environment 102, at least one of the devices will be set up as the Master that will initiate a given task. Other devices will be considered as Slaves. For a given task, there could be multiple Masters for redundancy. One of the Masters can be designated as the Primary Master and others as Secondary Masters.
Turning now to
A Mobile Device 10 that is set up with MCM may participate in MCM functions. When active, such a device may be set up to recognize the need to share a task. This is shown as Need MMU check 222 in
Following a Need MMU check 222, if there is no need as shown by 224b, the device will continue to remain in the state of checking for the need. When a need is detected, a check for the device type is conducted depicted by Device Type check 226. If the device is a Mobile Device 10 designated as Master, it will initiate a Broadcast 232 shown as 228a. If the device is a Mobile Device 10 designated as a Slave, it will look for a Master to initiate the Broadcast as shown by 228b and Request Master 230. Master will then initiate a Broadcast 232.
When Mobile Device 10 designated as a Master initiates Broadcast 232, it will wait for a response. If no other device responds, Mobile Device 10 designated as Master will continue to broadcast as shown by 234b. If any other MCM enabled device receives this broadcast shown by 234a, it will generate Response 236. Broadcasting Mobile Device 10 designated as Master will check the validity of a responding slave. This Valid Slave check 238 includes the checking of MCM ID 120 and MCM Control Word 130. If the Valid Slave check 238 determines that the responding device is not eligible to participate in the task, it will reject the device and go back to broadcasting for valid devices shown as 240b. If the Valid Slave check 238 determines that the device is acceptable, Configure Slave 242 will be initiated via 240a. Following the configuration of the slave, initiating Mobile Device 10 designated as Master will then check if it has sufficient devices to perform the task at hand shown as Device Count check 244. If Mobile Device 10 designated as Master determines that it requires additional devices, it will initiate additional broadcasts shown by 246b.
If the Mobile Device 10 designated as Master determines that it has enough devices to execute the task, it will stop the broadcast and begin to start the operations as shown by 246a.
Once an MCM environment is setup, one or more Mobile Device 10 designated as Masters may control the operation and task execution of the environment. In one embodiment, a Mobile Device 10 designated as Master may designate the operation of task allocation to one or more Salves. In another embodiment, multiple Mobile Devices 10 designated as Masters may share the work of allocating tasks.
Turning now to
After a Mobile Device 10 designated as the Master sets up an MCM Environment and is ready to start operations, it will begin to allocate tasks shown by Task Allocation 252. Task Allocation 252 will distribute the task to other MCM Environment members based on criteria defined by task allocation policies.
Following Task Allocation 252, Mobile Device 10 designated as the Master will send necessary control information shown as Send Op Control 254. Optionally, Mobile Device 10 designated as the Master may also send algorithms for execution shown as Algorithm Distribution 256 and data shown as Data Distribution 258.
In one embodiment, algorithms needed for executing tasks and/or data may be pre-loaded to the Mobile Devices 10. In this case, Algorithm Distribution 256 and Data Distribution 258 may not be required.
Following the execution of the task, results of the execution will be sent back to Mobile Device 10 designated as Master. Result may also be distributed to other Mobile Devices 10 in the cluster environment. This is shown as Result 260 in
After a MCM environment is set up and it is active, MCM provides several mechanisms to monitor and maintain the integrity of the environment.
Mobile Device 10 designated as the Master of a MCM Environment 102 periodically initiates Broadcast Pulse Test 272. It then waits for responses from other member Mobile Devices 10 in the environment. If all members respond, Pulse Timer Delay 276 is initiated. When the Delay Limit 278 detects that it is time to initiate another pulse test, Broadcast Pulse Test 272 is invoked again shown as 279a.
If a member does not respond to a pulse test, Exception 280 is invoked. MCM allows various mechanisms to handle the exception of no response to a pulse test. In one embodiment, Master may re-send the pulse test to that slave device. In another embodiment, Master may remove non-responding Slaves from the environment and re-assign the task to other members of the environment.
One of the key problems with mobile systems working in a cluster environment is the fact that Mobile Devices, by nature, are mobile. The topology and inter-connection between devices may change often. MCM provides several innovative mechanisms to handle this problem. Unlike fixed cluster and parallel processing schemes, MCM does not rely on specific configuration. Devices participating in an environment do not have to communicate with only neighbors. Neighbors can be changing and it will not have to communicate with fixed devices. They can communicate with any device within its communication range.
Turning now to
As seen, the topology of MCM Environment 102a has changed from
Another issue arises from the possibility that moving devices may move in and out of the communication range of the devices in a cluster environment.
Turning to
In the figure, Mobile Device 10-5 is shown leaving the cluster communication range shown via Leaving Cluster Range 103a. MCM allows for several mechanisms to detect devices losing communication capability. In one embodiment, Pulse Check 270 will periodically monitor all devices. When it detects that a device has lost its communication capabilities, it will initiate Exception 280 that will handle the device missing case.
In another embodiment, Mobile Devices 10 in active MCM environment may be set up the send ‘I am moving’ signal when it moves beyond a certain set limit of distance.
In yet another embodiment, Mobile Devices 10 in active MCM environment may monitor its location by means of GPS or other methods. Using its location and/or co-ordinates, it may realize that it is moving out of communication range from other MCM environment device. Such a device may intimate other devices in the environment that it is leaving the communication range.
Once the departure of a Mobile Device 10 is realized, Master of the environment may reallocate the task to other devices in the environment.
Mobile Device 10 equipped with MCM and setup work in a given environment might enter an environment communication range. In
MCM allows Mobile Devices participating in an environment to temporarily excuse itself from the tasks of the MCM environment. In
In
In one embodiment, Master may check why a device has gone ‘Busy’. If it determines that MCM task is of critical nature, it may preempt the ‘Busy’ device unless the device is experiencing a potential failure condition.
As seen, there are various embodiments for leaving, entering, busy, and preempt states. The embodiments described are illustrative for demonstrating the flexibility of MCM.
MCM introduces an efficient and effective framework that enables mobile cluster computing.
In addition to enabling cluster capabilities for Mobile Devices, MCM also introduces several other benefits:
1) Enhanced compute power: With MCM Unit 100, MCM provides additional compute power to function alongside Mobile Device 10 to enhance the computation capability of the system.
2) Real-time resource management: MCM introduces mechanisms for Mobile Devices to detect and manage resources in the real-time.
3) Task sharing: MCM enables the ability for a Mobile Device to dispatch a task to other qualified Mobile Devices that are MCM enabled.
4) Executing dispatched tasks: An MCM enabled Mobile Device will be able to lend its compute power to other qualified devices.
In accordance with above disclosure, a mechanism to enable real-time, high compute power in the field is contemplated. The invention contemplates achieving this by clustering more than one Mobile Devices working in tandem. The invention contemplates mechanisms to set up a mobile cluster computing system. It further contemplates mechanisms to efficiently maintain a mobile cluster computing system. It also contemplates on sharing tasks between various devices.
While the above description contains many specificities, these should not be construed as limitations on the scope of the invention, but rather as an exemplification of preferred embodiments thereof. Accordingly, the scope of the invention should be determined not by the embodiment(s) illustrated, but by the appended claims and their legal equivalents.
The present application is a Continuation of U.S. patent application Ser. No. 13/730,792, filed Dec. 28, 2012, now allowed, which claims benefit of priority under 35 U.S.C. § 112(e) to U.S. Provisional Patent Application No. 61/581,857, filed Dec. 30, 2011, the entirety of which are expressly incorporated herein by reference in their entirety.
Number | Name | Date | Kind |
---|---|---|---|
6493759 | Passman | Dec 2002 | B1 |
7466810 | Quon et al. | Dec 2008 | B1 |
7590589 | Hoffberg | Sep 2009 | B2 |
7599685 | Goldberg et al. | Oct 2009 | B2 |
7657224 | Goldberg et al. | Feb 2010 | B2 |
7668942 | Tiwari et al. | Feb 2010 | B2 |
7698393 | Milstein et al. | Apr 2010 | B2 |
7742740 | Goldberg et al. | Jun 2010 | B2 |
7835689 | Goldberg et al. | Nov 2010 | B2 |
7865137 | Goldberg et al. | Jan 2011 | B2 |
7917082 | Goldberg et al. | Mar 2011 | B2 |
7953083 | Evans et al. | May 2011 | B1 |
7961694 | Chan et al. | Jun 2011 | B1 |
8023663 | Goldberg | Sep 2011 | B2 |
8130758 | Cohen | Mar 2012 | B2 |
8204955 | McBride et al. | Jun 2012 | B2 |
8246454 | Zalewski | Aug 2012 | B2 |
8285326 | Carmody et al. | Oct 2012 | B2 |
8462745 | Alizadeh-Shabdiz | Jun 2013 | B2 |
8478297 | Morgan et al. | Jul 2013 | B2 |
8528814 | Wolfe | Sep 2013 | B2 |
8538457 | Morgan et al. | Sep 2013 | B2 |
8560639 | Murphy et al. | Oct 2013 | B2 |
8566447 | Cohen et al. | Oct 2013 | B2 |
8600830 | Hoffberg | Dec 2013 | B2 |
8626933 | van Steenbergen et al. | Jan 2014 | B2 |
8630664 | Alizadeh-Shabdiz et al. | Jan 2014 | B2 |
8638256 | Alizadeh-Shabdiz et al. | Jan 2014 | B2 |
8638725 | Alizadeh-Shabdiz | Jan 2014 | B2 |
8644823 | Rozinov | Feb 2014 | B2 |
8701991 | Wolfe | Apr 2014 | B2 |
8769049 | Murphy et al. | Jul 2014 | B2 |
8769055 | Murphy et al. | Jul 2014 | B2 |
8781462 | Osterloh et al. | Jul 2014 | B2 |
8837363 | Jones et al. | Sep 2014 | B2 |
8839364 | Kramarenko et al. | Sep 2014 | B2 |
8850036 | Rozinov et al. | Sep 2014 | B2 |
8874477 | Hoffberg | Oct 2014 | B2 |
8890746 | Alizadeh-Shabdiz et al. | Nov 2014 | B2 |
8914396 | Johnston | Dec 2014 | B2 |
8914401 | Johnston | Dec 2014 | B2 |
8929257 | Goepp et al. | Jan 2015 | B1 |
8939362 | Wolfe | Jan 2015 | B2 |
8953029 | Zalewski | Feb 2015 | B2 |
8965412 | Alizadeh-Shabdiz et al. | Feb 2015 | B2 |
8970659 | Anderson et al. | Mar 2015 | B1 |
8970660 | Rudkowski et al. | Mar 2015 | B1 |
8983493 | Brachet et al. | Mar 2015 | B2 |
9016567 | Wolfe | Apr 2015 | B2 |
9026652 | Piehler et al. | May 2015 | B1 |
9031531 | Miluzzo et al. | May 2015 | B2 |
9043332 | Noel et al. | May 2015 | B2 |
9053124 | Dornquast et al. | Jun 2015 | B1 |
9118654 | Anderson et al. | Aug 2015 | B2 |
9118809 | Anderson et al. | Aug 2015 | B2 |
9148482 | Rozinov et al. | Sep 2015 | B2 |
9152871 | Soundararajan et al. | Oct 2015 | B2 |
9166953 | Luukkala et al. | Oct 2015 | B2 |
9191447 | Kramarenko et al. | Nov 2015 | B2 |
9204131 | Arrasvuori et al. | Dec 2015 | B2 |
9229952 | Meacham et al. | Jan 2016 | B1 |
9251481 | Richter et al. | Feb 2016 | B2 |
9251515 | Wolfe | Feb 2016 | B2 |
9264329 | Chrapko et al. | Feb 2016 | B2 |
9275338 | Noel et al. | Mar 2016 | B2 |
9286386 | Johnston | Mar 2016 | B2 |
9311670 | Hoffberg | Apr 2016 | B2 |
9332392 | Conway et al. | May 2016 | B1 |
9336521 | Wolfe | May 2016 | B2 |
9338285 | Anderson et al. | May 2016 | B2 |
9344396 | Geppert et al. | May 2016 | B2 |
9344455 | Himawan et al. | May 2016 | B2 |
9369884 | Jones et al. | Jun 2016 | B2 |
9378065 | Shear et al. | Jun 2016 | B2 |
9384334 | Burba et al. | Jul 2016 | B2 |
9384335 | Hunt et al. | Jul 2016 | B2 |
9418344 | Fulkerson | Aug 2016 | B2 |
9430667 | Burba et al. | Aug 2016 | B2 |
9432462 | Richter et al. | Aug 2016 | B2 |
9438619 | Chan et al. | Sep 2016 | B1 |
9442789 | Noel et al. | Sep 2016 | B2 |
9467494 | Mahalingaiah | Oct 2016 | B1 |
9477787 | Boldyrev et al. | Oct 2016 | B2 |
9483506 | Meacham et al. | Nov 2016 | B2 |
9501457 | Heiney et al. | Nov 2016 | B2 |
9547856 | Wolfe | Jan 2017 | B2 |
9554247 | Jones et al. | Jan 2017 | B2 |
9578043 | Mawji et al. | Feb 2017 | B2 |
9584540 | Chan et al. | Feb 2017 | B1 |
9614724 | Menezes et al. | Apr 2017 | B2 |
9659050 | Andrei et al. | May 2017 | B2 |
9667646 | Muhlestein et al. | May 2017 | B2 |
9667700 | Feldman et al. | May 2017 | B2 |
9679254 | Mawji et al. | Jun 2017 | B1 |
9710559 | Solomakha et al. | Jul 2017 | B2 |
9717006 | Haugen et al. | Jul 2017 | B2 |
9721296 | Chrapko | Aug 2017 | B1 |
9727423 | Dornquast et al. | Aug 2017 | B2 |
9740709 | Mawji et al. | Aug 2017 | B1 |
9772934 | Maag et al. | Sep 2017 | B2 |
9785480 | Kamawat et al. | Oct 2017 | B2 |
9792160 | Shear et al. | Oct 2017 | B2 |
9798596 | Vibhor et al. | Oct 2017 | B2 |
9818136 | Hoffberg | Nov 2017 | B1 |
9832224 | Murugesan et al. | Nov 2017 | B2 |
9898347 | Gupta | Feb 2018 | B1 |
9904579 | Shear et al. | Feb 2018 | B2 |
9904604 | Dornquast et al. | Feb 2018 | B2 |
9916206 | Dornquast et al. | Mar 2018 | B2 |
9918295 | Jones et al. | Mar 2018 | B2 |
9922134 | Chrapko et al. | Mar 2018 | B2 |
9946738 | Meacham et al. | Apr 2018 | B2 |
9955330 | Miluzzo et al. | Apr 2018 | B2 |
9960918 | Luukkala et al. | May 2018 | B2 |
20020169846 | Chen | Nov 2002 | A1 |
20030005068 | Nickel et al. | Jan 2003 | A1 |
20060167784 | Hoffberg | Jul 2006 | A1 |
20070087756 | Hoffberg | Apr 2007 | A1 |
20070291748 | Ichiki | Dec 2007 | A1 |
20080247310 | Ruffini et al. | Oct 2008 | A1 |
20080270569 | McBride et al. | Oct 2008 | A1 |
20080320138 | Wada | Dec 2008 | A1 |
20090276506 | Tiwari et al. | Nov 2009 | A1 |
20100174715 | Tiwari et al. | Jul 2010 | A1 |
20100228740 | Cannistraro et al. | Sep 2010 | A1 |
20100235285 | Hoffberg | Sep 2010 | A1 |
20100251142 | Geppert et al. | Sep 2010 | A1 |
20100273553 | Zalewski | Oct 2010 | A1 |
20100317420 | Hoffberg | Dec 2010 | A1 |
20110004513 | Hoffberg | Jan 2011 | A1 |
20110060988 | Mysliwy et al. | Mar 2011 | A1 |
20110118032 | Zalewski | May 2011 | A1 |
20110141790 | Lim | Jun 2011 | A1 |
20110161341 | Johnston | Jun 2011 | A1 |
20110161347 | Johnston | Jun 2011 | A1 |
20110182216 | Ono et al. | Jul 2011 | A1 |
20110312344 | McCahill | Dec 2011 | A1 |
20120041792 | Priyadarshan et al. | Feb 2012 | A1 |
20120151018 | Bacher et al. | Jun 2012 | A1 |
20120203823 | Manglik et al. | Aug 2012 | A1 |
20120239189 | Jaud et al. | Sep 2012 | A1 |
20120246019 | Wolfe | Sep 2012 | A1 |
20120252462 | Fahldieck | Oct 2012 | A1 |
20120271697 | Gilman et al. | Oct 2012 | A1 |
20120317274 | Richter et al. | Dec 2012 | A1 |
20130006789 | Fulkerson | Jan 2013 | A1 |
20130007864 | Puflea | Jan 2013 | A1 |
20130080911 | Klemm | Mar 2013 | A1 |
20130103814 | Carrasco et al. | Apr 2013 | A1 |
20130117307 | Vishnoi et al. | May 2013 | A1 |
20130221858 | Silberstein | Aug 2013 | A1 |
20130232164 | Bigney et al. | Sep 2013 | A1 |
20140012752 | Wolfe | Jan 2014 | A1 |
20140047331 | Feldman et al. | Feb 2014 | A1 |
20140074850 | Noel et al. | Mar 2014 | A1 |
20140141744 | Miluzzo et al. | May 2014 | A1 |
20140143249 | Cazzanti et al. | May 2014 | A1 |
20140172863 | Imbruce et al. | Jun 2014 | A1 |
20140181110 | Imbruce et al. | Jun 2014 | A1 |
20140207542 | Wolfe | Jul 2014 | A1 |
20140214663 | Wolfe | Jul 2014 | A1 |
20140214667 | Wolfe | Jul 2014 | A1 |
20140229383 | Wolfe | Aug 2014 | A1 |
20140310589 | Heiney et al. | Oct 2014 | A1 |
20150046413 | Andrei et al. | Feb 2015 | A1 |
20150063700 | Soundararajan et al. | Mar 2015 | A1 |
20150081734 | Mason | Mar 2015 | A1 |
20150088920 | Johnston | Mar 2015 | A1 |
20150089399 | Megill et al. | Mar 2015 | A1 |
20150103136 | Anderson et al. | Apr 2015 | A1 |
20150106629 | Anderson et al. | Apr 2015 | A1 |
20150149286 | Brown | May 2015 | A1 |
20150172855 | Mishra et al. | Jun 2015 | A1 |
20150181200 | Arrasvuori et al. | Jun 2015 | A1 |
20150208000 | Ojanpera | Jul 2015 | A1 |
20150222615 | Allain et al. | Aug 2015 | A1 |
20150223043 | Miluzzo et al. | Aug 2015 | A1 |
20150227847 | Noel et al. | Aug 2015 | A1 |
20150227918 | Wolfe | Aug 2015 | A1 |
20150245409 | Medapalli | Aug 2015 | A1 |
20150317651 | Barker et al. | Nov 2015 | A1 |
20150350371 | Woods et al. | Dec 2015 | A1 |
20150356184 | Solomakha et al. | Dec 2015 | A1 |
20150365522 | Anderson et al. | Dec 2015 | A1 |
20160019481 | Roy | Jan 2016 | A1 |
20160092312 | Dornquast et al. | Mar 2016 | A1 |
20160092444 | Dornquast et al. | Mar 2016 | A1 |
20160092465 | Dornquast et al. | Mar 2016 | A1 |
20160094649 | Dornquast et al. | Mar 2016 | A1 |
20160105512 | Richter et al. | Apr 2016 | A1 |
20160125000 | Meacham et al. | May 2016 | A1 |
20160147589 | Noel et al. | May 2016 | A1 |
20160165323 | Hollis | Jun 2016 | A1 |
20160191588 | Shafer | Jun 2016 | A1 |
20160203509 | Sharp et al. | Jul 2016 | A1 |
20160232463 | McDonough et al. | Aug 2016 | A1 |
20160239350 | Kamawat et al. | Aug 2016 | A1 |
20160241572 | Muhlestein et al. | Aug 2016 | A1 |
20160253659 | Wolfe | Sep 2016 | A1 |
20160294853 | Murugesan et al. | Oct 2016 | A1 |
20160323138 | Wun et al. | Nov 2016 | A1 |
20160328890 | Keane et al. | Nov 2016 | A1 |
20170010869 | Heiney et al. | Jan 2017 | A1 |
20170031889 | Heiney et al. | Feb 2017 | A1 |
20170060920 | Bollinger et al. | Mar 2017 | A1 |
20170085413 | Cencini et al. | Mar 2017 | A1 |
20170085637 | Cencini et al. | Mar 2017 | A1 |
20170097950 | Meacham et al. | Apr 2017 | A1 |
20170116103 | Cencini et al. | Apr 2017 | A1 |
20170132611 | Wolfe | May 2017 | A1 |
20170148264 | Pichette et al. | May 2017 | A1 |
20170213179 | Schissel et al. | Jul 2017 | A1 |
20170213295 | Kritzer et al. | Jul 2017 | A1 |
20170220403 | Maag et al. | Aug 2017 | A1 |
20170230846 | Wang et al. | Aug 2017 | A1 |
20170249464 | Maximov | Aug 2017 | A1 |
20170257382 | Muhlestein et al. | Sep 2017 | A1 |
20170262769 | McShane et al. | Sep 2017 | A1 |
20170262866 | Barker et al. | Sep 2017 | A1 |
20170264493 | Cencini et al. | Sep 2017 | A1 |
20170264674 | Feldman et al. | Sep 2017 | A1 |
20170286553 | Solomakha et al. | Oct 2017 | A1 |
20170286772 | Workman et al. | Oct 2017 | A1 |
20170315876 | Dornquast et al. | Nov 2017 | A1 |
20170337124 | Maag et al. | Nov 2017 | A1 |
20170372351 | Sharp et al. | Dec 2017 | A1 |
20180032382 | Kamawat et al. | Feb 2018 | A1 |
20180068358 | Hoffberg | Mar 2018 | A1 |
20180113880 | Metcalf-Putnam et al. | Apr 2018 | A1 |
20180153501 | Leal et al. | Jun 2018 | A1 |
Entry |
---|
Dou, A MapReduce Framework for Mobile Systems, 2010. |
Marinelli, E. E. (2009). Hyrax: cloud computing on mobile devices using MapReduce (No. CMU-CS-09-164). Carnegie-mellon univ Pittsburgh PA school of computer science. |
Huerta-Canepa, Gonzalo, and Dongman Lee. “A virtual cloud computing provider for mobile devices.” In Proceedings of the 1st ACM Workshop on Mobile Cloud Computing Services: Social Networks and Beyond, p. 6. ACM, 2010. |
Satyanarayanan, Mahadev, Paramvir Bahl, Ramon Caceres, and Nigel Davies. “The case for vm-based cloudlets in mobile computing.” IEEE pervasive Computing 8, No. 4 (2009). |
Giurgiu, Ioana, Oriana Riva, Dejan Juric, Ivan Krivulev, and Gustavo Alonso. “Calling the cloud: enabling mobile phones as interfaces to cloud applications.” In Proceedings of the 10th ACM/IFIP/USENIX International Conference on Middleware, p. 5. Springer-Verlag New York, Inc., 2009. |
Chun, Byung-Gon, Sunghwan Ihm, Petros Maniatis, Mayur Naik, and Ashwin Patti. “Clonecloud: elastic execution between mobile device and cloud.” In Proceedings of the sixth conference on Computer systems, pp. 301-314. ACM, 2011. |
Fernando, Niroshinie, Seng W. Loke, and Wenny Rahayu. “Mobile cloud computing: A survey” Future generation aomputer systems 29, No. 1 (2013): 84-106. |
Cuervo, Eduardo, Aruna Balasubramanian, Dae-ki Cho, Alec Wolman, Stefan Saroiu, Ranveer Chandra, and Paramvir Bahl. “MAUI: making smartphones last longer with code offload.” In Proceedings of the 8th international conference on Mobile systems, applications, and services, pp. 49-62. ACM, 2010. |
Kemp, Roelof, Nicholas Palmer, Thilo Kielmann, and Henri Bal. “Cuckoo: a computation offloading framework for smartphones.” In International Conference on Mobile Computing, Applications, and Services, pp. 59-79. Springer, Berlin, Heidelberg, 2010. |
Zhang, Xinwen, Anugeetha Kunjithapatham, Sangoh Jeong, and Simon Gibbs. “Towards an elastic application model for augmenting the computing capabilities of mobile devices with cloud computing.” Mobile Networks and Applications 16, No. 3 (2011): 270-284. |
Dou, Adam, Vana Kalogeraki, Dimitrios Gunopulos, Taneli Mielikainen, and Ville H. Tuulos. “Misco: a mapreduce framework for mobile systems.” In Proceedings of the 3rd international conference on pervasive technologies related to assistive environments, p. 32. ACM, 2010. |
Chun, Byung-Gon, and Petros Maniatis. “Augmented smartphone applications through clone cloud execution.” In HotOS, vol. 9, pp. 8-11. 2009. |
Huang, Dijiang, Xinwen Zhang, Myong Kang, and Jim Luo. “MobiCloud: building secure cloud framework for mobile computing and communication.” In Service Oriented System Engineering (SOSE), 2010 Fifth IEEE International Symposium on, pp. 27-34. Ieee, 2010. |
Klein, Andreas, Christian Mannweiler, Joerg Schneider, and Hans D. Schotten. “Access schemes for mobile cloud computing.” In Mobile Data Management (MDM), 2010 Eleventh International Conference on, pp. 387-392. IEEE, 2010. |
Shi, Cong, Vasileios Lakafosis, Mostafa H. Ammar, and Ellen W. Zegura. “Serendipity: enabling remote computing among intermittently connected mobile devices.” In Proceedings of the thirteenth ACM international symposium on Mobile Ad Hoc Networking and Computing, pp. 145-154. ACM, 2012. |
Abolfazli, Saeid, Zohreh Sanaei, Ejaz Ahmed, Abdullah Gani, and Rajkumar Buyya. “Cloud-based augmentation for mobile devices: motivation, taxonomies, and open challenges.” IEEE Communications Surveys Tutorials 16, No. 1 (2014): 337-368. |
Kumar, Karthik, and Yung-Hsiang Lu. “Cloud computing for mobile users: Can offloading computation save energy.” Computer 43, No. 4 (2010): 51-56. |
Fan, Xiaopeng, Jiannong Cao, and Haixia Mao. “A survey of mobile cloud computing.” zTE Communications (2011). |
Sanaei, Zohreh, Saeid Abolfazli, Abdullah Gani, and Rajkumar Buyya. “Heterogeneity in mobile cloud computing: taxonomy and open challenges.” IEEE Communications Surveys Tutorials 16, No. 1 (2014): 369-392. |
Kovachev, Dejan, Yiwei Cao, and Ralf Klamma. “Mobile cloud computing: a comparison of application models.” arXiv preprint arXiv:1107.4940 (2011). |
Fernando, Niroshinie, Seng W. Loke, and Wenny Rahayu. “Dynamic mobile cloud computing: Ad hoc and opportunistic job sharing.” In Utility and Cloud Computing (UCC), 2011 Fourth IEEE International Conference on, pp. 281-286. IEEE, 2011. |
Verbelen, Tim, Pieter Simoens, Filip De Turck, and Bart Dhoedt. “Cloudlets: Bringing the cloud to the mobile user” In Proceedings of the third Acm workshop on Mobile cloud computing and services, pp. 29-36. ACM, 2012. |
Chun, Byung-Gon, and Petros Maniatis. “Dynamically partitioning applications between weak devices and clouds.” In Proceedings of the 1st ACM Workshop on Mobile Cloud Computing Services: Social Networks and Beyond, p. 7. ACM, 2010. |
Zhang, Xinwen, Joshua Schiffman, Simon Gibbs, Anugeetha Kunjithapatham, and Sangoh Jeong. “Securing elastic applications on mobile devices for cloud computing.” In Proceedings of the 2009 ACM workshop on Cloud computing security, pp. 127-134. ACM, 2009. |
Yang, Lei, Jiannong Cao, Yin Yuan, Tao Li, Andy Han, and Alvin Chan. “A framework for partitioning and execution of data stream applications in mobile cloud computing.” ACM Sigmetrics Performance Evaluation Review 40, No. 4 (2013): 23-32. |
Doolan, Daniel C., Sabin Tabirca, and Laurence T. Yang. “Mmpi a message passing interface for the mobile environment.” In Proceedings of the 6th International Conference on Advances in Mobile Computing and Multimedia, pp. 317-321. ACM, 2008. |
Kosta, Sokol, Andrius Aucinas, Pan Hui, Richard Mortier, and Xinwen Zhang. “Thinkair: Dynamic resource allocation and parallel execution in the cloud for mobile code offloading.” In Infocom, 2012 Proceedings IEEE, pp. 945-953. IEEE, 2012. |
Black, Michael, and William Edgar. “Exploring mobile devices as Grid resources: Using an x86 virtual machine to run BOINC on an iPhone.” In Grid Computing, 2009 10th IEEE/ACM International Conference on, pp. 9-16. IEEE, 2009. |
Gordon, Mark S., Davoud Anoushe Jamshidi, Scott A. Mahlke, Zhuoqing Morley Mao, and Xu Chen. “COMET: Code Offload by Migrating Execution Transparently.” In OSDI, vol. 12, pp. 93-106. 2012. |
Zhang, Xinwen, Sangoh Jeong, Anugeetha Kunjithapatham, and Simon Gibbs. “Towards an elastic application model for augmenting computing capabilities of mobile platforms.” In International Conference on Mobile Wireless Middleware, Operating Systems, and Applications, pp. 161-174. Springer, Berlin, Heidelberg, 2010. |
Flinn, Jason, SoYoung Park, and Mahadev Satyanarayanan. “Balancing performance, energy, and quality in pervasive computing.” In Distributed Computing Systems, 2002. Proceedings. 22nd International Conference on, pp. 217-226. IEEE, 2002. |
Kovachev, Dejan, Dominik Renzel, Ralf Klamma, and Yiwei Cao. “Mobile community cloud computing: emerges and evolves.” In Mobile Data Management (MDM), 2010 Eleventh International Conference on, pp. 393-395. IEEE, 2010. |
Balan, Rajesh Krishna, Mahadev Satyanarayanan, So Young Park, and Tadashi Okoshi. “Tactics-based remote execution for mobile computing.” In Proceedings of the 1st international conference on Mobile systems, applications and services, pp. 273-286. ACM, 2003. |
Kumar, Karthik, Jibang Liu, Yung-Hsiang Lu, and Bharat Bhargava. “A survey of computation offloading for mobile systems.” Mobile Networks and Applications 18, No. 1 (2013): 129-140. |
Lowe, David, Amir Mujkanovic, Daniele Miorandi, and Lidia Yamamoto. “Fault tolerance of embryonic algorithms in mobile networks.” In International Conference on Evolvable Systems, pp. 49-60. Springer, Berlin, Heidelberg, 2010. |
Mishra, Amitabh, and Gerald Masson. “MoCCA: A mobile cellular cloud architecture.” In Sarnoff Symposium (SARNOFF), 2012 35th IEEE, pp. 1-6. IEEE, 2012. |
Satyanarayanan, Mahadev. “Mobile computing: the next decade.” In Proceedings of the 1st ACM workshop on mobile cloud computing services: social networks and beyond, p. 5. ACM, 2010. |
Soyata, Tolga, Rajani Muraleedharan, Colin Funai, Minseok Kwon, and Wendi Heinzelman. “Cloud-vision: Real-time face recognition using a mobile-cloudlet-cloud acceleration architecture.” In Computers and communications (ISCC), 2012 IEEE symposium on, pp. 000059-000066. IEEE, 2012. |
Koukoumidis, Emmanouil, Dimitrios Lymberopoulos, Karin Strauss, Jie Liu, and Doug Burger. “Pocket cloudlets.” In ACM SIGPLAN Notices, vol. 46, No. 3, pp. 171-184. ACM, 2011. |
Parmar, Ketan B., Nalinibhai N. Jani, Pranav S. Shrivastav, and Mitesh H. Patel. “Mobile grid computing: Facts or fantasy.” Int. journal of multidisciplinary science and engineering 4, No. 1 (2013). |
Fesehaye, Debessay, Yunlong Gao, Klara Nahrstedt, and Guijun Wang. “Impact of cloudlets on interactive mobile cloud applications.” In Enterprise Distributed Object Computing Conference (EDOC), 2012 IEEE 16th International, pp. 123-132. IEEE, 2012. |
Miettinen, Antti P., and Jukka K. Nurminen. “Energy Efficiency of Mobile Clients in Cloud Computing.” HotCloud 10 (2010): 4-4. |
Sanaei, Zohreh, Saeid Abolfazli, Abdullah Gani, and Muhammad Shiraz. “SAMI: Service-based arbitrated multi-tier infrastructure for Mobile Cloud Computing.” In Communications in China Workshops (ICCC), 2012 1st IEEE International Conference on, pp. 14-19. IEEE, 2012. |
Shiraz, Muhammad, Abdullah Gani, Rashid Hafeez Khokhar, and Rajkumar Buyya. “A review on distributed applicatio processing frameworks in smart mobile devices for mobile cloud computing.” IEEE Communications Surveys Tutorials15, No. 3 (2013): 1294-1313. |
Number | Date | Country | |
---|---|---|---|
61581857 | Dec 2011 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 13730792 | Dec 2012 | US |
Child | 15217579 | US |