Exploiting Safe Parallelism in Wireless Sensor Networks: A Generic and Reconfigurable Approach Jó Ueyama , Danny Hughes, Paul Grace, Edmundo R. M. Madeira Institute of Mathematics and Computer Science University of Sao Paulo (USP) Liverpool, 14 th December ,2012
Why Parallelism? Parallelism is widely utilized in a diverse range of devices, such as: • Desktop computers • Smartphones • Sensor motes (mPlatform – by Microsoft) Parallelism is implemented with the aid of several tools • Java Threads • Pthreads • MPI 2
How to help developers? Generic tool? 3
How to help developers? Generic tool? MPI 4
Any problem with parallelism? Parallelism can bring race conditions and deadlock problems This can be problematic particularly in critical systems such as: • Wireless sensor networks (WSN) monitoring nuclear reactor • or for healthcare (e.g. real-time heart rate) 5
Is parallelism a problem in all applications? However, not all applications would face problems with concurrency problems • E.g. non critical systems – WSN for car parking Solution? • We need a reconfigurable and generic approach to handle the real world problems • Using a single tool • Advantages? • Less learning curve and transferable skills 6
Our Approach: FlexPar Middleware • FlexPar Architecture consists of: – Microkernel style (ensures deployment in resource constrained devices) – Extensions • Loaders (enables deployment of a particular style of parallel software) • Binders (connects processes of a particular style) – Parallel deadlock-free systems 7
Essentially, a unique tool for parallel environments 8
Diving into details of our approach • Some implementation issues • We implemented two plugins based on: • CSP (Communicating Sequential Processes) – in a nutshell: – CSP Processes (e.g. functions, methods) do not share data – Each process do not invoke functions implemented in other processes – This avoids concurrency problems such as Bob Alice deadlocks and race conditions. 9
The first plugin • The first plugin was based on • Transterpreter (Transputer Interpreter) • Virtual machine for parallel applications written in occam • Highly portable (~2000 lines of code in pure ANSI C) gcc 10
Other Tools at UKC JCSP (Java CSP) – CSP library for Java programmers – One can use the CSP disciplines where JVM is supported – Advantage: CSP is reachable by the large community of Java programmers – Drawback: performance JCSP CSP in Java Java Developers 11
Why not use those tools? The above mentioned tools have the following limitations: – Static configuration • Transterpreter, KroC (occam compiler) • CSP processes cannot be connected and disconnected at runtime • Dynamic reconfiguration can tailor the software to the desired target domain – Sensor nets, routers – Limited interoperability • Processes in occam and JCSP cannot interoperate 12
FlexPar Quantitative Evaluation We performed evaluation such as memory footprint, performance and overhead – This was carried out on the Gumstixs Commstime Benchmark evaluation – Measure context switch, iteration between processes and communtion overhead We ported FlexPar to two platforms – Gumstixs – Sun SPOTs 13
FlexPar Qualitative Evaluation This is still under construction Evaluate FlexPar on our river monitoring system which has three processes – Monitors floods – Reads water poluttion – Sends data to base station The river monitoring system is considered to be critical because... 14
Why is it critical? Flash floods takes places particularly on rainy seasons (December from March) Our urban rivers are highly polluted Floods Pollution 15
Port FlexPar to the deployed node? The full prototype deployed at Monjolino urban river Base station at the porter's lodge 16
Acknowledgements We would like to thank FAPESP, CNPq and RNP for funding our research project 17
Thank you for your attention! Email: joueyama@icmc.usp.br 18
We are all waiting for your visit to Brazil 19
Recommend
More recommend