/mcheetah

Data Processing Framework for Android Phones with Multicore CPUs/GPUs

Primary LanguageJava

MCheetah


  • Create data processing pipelines on Android mobile phones
  • Easily connect your data I/O to cloud environments like Dropbox
  • Skip detailed Android programming; just connect your pipeline stages using producer-consumer patterns
  • Create data processing fragment abstractions using 'Parsers', 'Computers', and 'Renderers'
  • Leverage GPU-optimized plotting with OpenGL for large data sets
  • Enjoy auto-tuning of threads to optimize speed on a variety of mobile architectures
  • Enable approximate computing to optimize apps for speed, accuracy, or energy consumption
  • Easily reuse your critical code for desktop Java applications
  • Open spource (MIT license)

MCheetah Overview

Documentation

Contributors

Project lead: Victor Pankratius (MIT)
Project developer: David Mascharka (MIT Lincoln Laboratory)*

Acknowledgements

We acknowledge support from NSF AGS-1343967 for the Mahali project and NSF AST-1156504 for the Research Experience for Undergraduates (REU) program.

Examples

MCheetah was created as a reusable mobile framework for the NSF-sponsored Mahali project http://mahali.mit.edu

App examples using MCheetah:

App
MahaliRelayApp [Code]
  • Purpose: Monitor Earth's ionosphere through GPS.
  • Features: Data acquisition from multifrequency GPS receivers, multithreaded RINEX file parsing on phone, bias removal, computation of ionospheric Total Electron Content (TEC), line of sight to vertical TEC tranformation through NASA satellite ephemeris access, visualization, upload to Dropbox.
  • AGU2015 Abstract

  • Screenshot
MagnetometerApp [Code]
  • Purpose: App turning a phone into a mobile magnetometer.
  • Features: Record data in nT, upload data to Dropbox.
  • *: David is currently an MIT Lincoln Laboratory employee. No Laboratory funding or resources were used to produce the results here. This work was completed under the NSF REU program and the NSF Mahali project at MIT Haystack Observatory.