將行動運算平台之負載轉移至雲端伺服器，具有提昇效能，降低功率消耗與提昇運算精確度等優點。但是，傳統分散式系統與多處理器系統中負載平衡的機制，均以具有高通訊頻寬之系統為對象，例如：具有高速內部通訊通道(如Fiber Optical Bus)的多處理器系統，以及以高速網路(如Myrinet)連接的分散式系統。但是，此類機制，並不適用於通訊頻寬有限且計算能力有限的行動通訊平台。因此，如何將行動通訊平台之負載轉移至雲端伺服器是一大挑戰。本研究將以OpenCL架構之概念，研究如何在行動通訊平台新增雲端核心(Cloud Core)之虛擬處理器(簡稱雲端處理器)，使得應用程式得以無縫(seamless) 使用雲端處理器。為達成以一目標，在計畫期間我們將研究負載分析，擴充OpenCL應用程式介面之設計，支援OpenCL之異質多核心平台虛擬層，虛擬層之動態資源分配等議題，以支援無縫使用雲端處理器。
Thanks to steady technological advances over the years in microprocessors, high speed wireless network, and so on, we now witness the emergence of an ever broader spectrum of mobile devices, as well as mobile computing services that rely on such systems for execution and delivery. Examples mobile computing services include
- Collaborative mobile applications: collaborative mobile application is the major use scenario of this integrated project. In this use scenario, the workload is shared among trusted collaborative computing devices including mobile devices, desktop computers, and remote cloud servers. To collaborate among networked devices, a reliable trusted connection among the collaborative devices is essential and required. In addition, to support timely collaboration, the collaborative devices should respond to the requests from devices in timely manner.
- Navigation services: mobile devices are widely used for navigation on hiking, driving, and street walking. This type of services may require connected channels to download map while the users move. While doing so, the device requires to continuously compute its location and request maps from remote servers. Evidently, it requires timely responses to provide on-time navigation guidance.
- Gaming: in the last few years, the majority of the best selling software for mobile devices are gaming applications. These applications allow the users to play interactive games at any time and at any place. To support timely interaction and impressive graphical user interface, these applications require great amount of computation for image processing and responsive computer user interaction.
- Social network: social network services allow the users of mobile devices connect to their friends on the go. These services require a connected network to exchange text message, photo, location, etc. Although social network service does not demand great amount of computation capacity, it relies on reliable network connectivity to provide responsive interaction. Existing system software on mobile platform do not distinguish the quality of service (QoS) requirement for each individual application and has no ability to provide guaranteed network bandwidth for social network services.
- Recognition/Mining/Synthesis (RMS): RMS service is a family of new and challenge services for mobile platforms. The recognition service compares the image/video of landmarks on the street, human face, and objects with those in database systems to identify the name and information of the subjects of interests. The mining services conduct intelligent search on its (local or remote) databases to find related information according to the provided information including image, text, or video. Last, the synthesis services combine real-time information and off-line information together to provide better use experience for the off-line information. All of the RMS services require great amount of computation and timely responses to user requests.
- • Location-Aware Services: with the location sensor on board, mobile devices can assist the users to find the suitable services with least efforts. Example includes to find the nearby restaurant, gas station, etc. Such services require the real-time location service and database access.
- Cloud-based Services: with the widely available data network, mobile devices have ubiquitous access to cloud services including document access, online document editing, and online collaborative writing, etc. These services extend unlimited capability to mobile devices but, in the mean time, require reliable network connection and timely application response.
The aforementioned services greatly extend the capabilities and services for resource rare mobile platforms. All the above services have performance requirement on the responsiveness of the services, which are not applicable to most of software applications on desktop and high performance computing. These services introduce great challenges to the system software and software development for mobile platforms. Although parts of the challenges for software development in this subproject are applicable to other computer software applications, the characteristics of mobile platforms and applications make many of these challenges unique and worthy noticing.
One unique feature for mobile platforms is its heterogeneous multicore platform. To reduce energy consumption and prolong battery lifetime, low power special designed processors/co-processors are used to support different type of computing workloads. Low power mobile processors (e.g., ARM processors) and signal processors (e.g., TI DSPs) are two examples. These special designed low power processors/co-processors not only shorten the request service time but also reduce energy consumption. However, how to fully utilize these heterogeneous processing capacities is a new challenge. OpenCL  is proposed to federate the processing capacities on a heterogeneous platform so as to adjust the processing resource allocation during the run-time and to better utilize the resources. Although OpenCL is mainly designed for desktop computing and high performance parallel computing, the application developers for mobile platforms can benefit from its unified programming interface design and the operating system can further benefit from its flexible resource allocation mechanism. Hence, few attempts were made to extend OpenCL support for heterogeneous multi-core mobile platforms. Examples are Nokia’s support for OpenCL and OpenCL EP RFC .
Special designed processors can certainly shorten the execution time of mobile applications and reduce the energy consumption for mobile platforms. However, the storage capacity and computing capacity for mobile platforms are severely limited. Cloud computing allows the mobile devices to take advantage of the (almost) unlimited storage and computing capacity on remote servers with flexible and dynamic service requests. However, existing cloud computing services are not well integrated into the mobile platforms. For example, online storage service such as DropBox can provide remote document accesses on Android platform, iOS platform, and all the desktop computing platforms. However, the cloud file service on mobile platforms is an individual application service, not integrated into the operating system on mobile devices. Such a service scheme has poor usability and may over consume resources on the platform. Federating cloud-computing services including file service and computing service into mobile computing services can greatly enhance its usability. In addition, it could further reduce energy consumption when parts of the computation are conducted on cloud servers, rather local processors.
The main thrust of this project is an architectural framework for integration of heterogeneous multi-core including cloud core and other system and application components of mobile computing services. The proposed research is motivated by the need to overcome the following three challenges in building and delivering these systems and services.
- Unified program interface for heterogeneous multicore platforms: comparing to general purpose computing and high performance scientific computing, the evolution and variety of mobile hardware platforms are much greater. Hence, how to port application software from one platform including the type of processor and operating system to another platform is one of the most discussed issues for embedded software development. Thanks to the lately development on unified software development environment such as Android platform, Symbian platform, and iOS platform, the porting efforts for embedded software application development are greatly reduced. However, the above mentioned development platforms are mostly concerned with user application development. Resource allocation and optimization are left to the operating systems to handle and none of the embedded operating systems supports run-time resource allocation for mobile platforms. One major roadblock of this challenge is the program interface standard to support reallocating applications from one type of processor to another one. Without such standard, the operating systems do not have sufficient information and, hence, freedom to adjust resource allocation at run-time and, hence, to optimize the resource utilization. OpenCL protocol attempts to provide a unified program interface for heterogeneous multicore programming but have limited support for embedded software, mobile computing services, and mobile platforms.
- Dynamic resource allocation for responsive computing on mobile platforms: one of the unique features for mobile platforms is its limited resource. Compared to desktop computing devices at the same market price, mobile computing devices can only provide one fifth to one tenth of the computation capacity. On the other hand, users have additional requirements on low energy consumption and responsive computer user interaction. Hence, how to efficiently make use of the computing resource on mobile platforms during the run-time to meet the requirement on energy consumption and responsiveness is critical. Dynamic resource allocation allows the system to merge the workload on several processors onto few of the processors and to turn off the other processors to reduce energy consumption. However, due to the heterogeneity of the processors, it is not trivial to merge the workload on heterogeneous processors. With the support of Just-In-Time compiler in OpenCL, migrating the workload between heterogeneous processors becomes a feasible candidate solution for dynamic resource allocation.
- Time sensitive mobile computing with limited resources: The targeted mobile computing devices in this project are consumer electronics and are demanded to provide highly responsive user computer interaction. However, the requirement on low energy consumption prevents the manufactures to adapt high performance processors on mobile devices and attach a string on the desirable feature of responsiveness for the devices. As a result, off-loading parts of the computation workload to remote servers or nearby mobile devices becomes a feasible alternative to achieve timely response for mobile computing services. How to seamlessly federate cloud services including storage and computing motivates the research of this subproject. However, the unpredictable and uncontrollable network connectivity (and bandwidth) is the major roadblock for this challenge.
The aforementioned challenges motivate this subproject to develop a virtualization cloud- computing framework for mobile devices. The contribution of this work are twofold: the first is to enable workload migration among mobile devices, cloud servers, and trusted collaborative devices and the second is to allow developing sophisticated mobile computing service without the string attached on limited hardware resources.