Personal tools
You are here: Home Users Artjom Lind, MSc Distributed Systems Peer-to-Peer Computing

Peer-to-Peer Computing

last modified Sep 03, 2013 11:21 AM expired

The Seminar topics related to Peer-to-Peer architectures and distributed computing on top of them

Individual topics

The peer-to-peer computing topics proposed by the students will appear here. Please send me an e-mail with exact specification of your proposal.

Friend-to-Friend Computing Platform

Friend-to-Friend Platform Logo General Information

The seminar topics listed below:

Friend-to-Friend Platform Logo Friend-to-Friend (F2F) Core: Computing Engines and Extensions

  • mpi4py extension for F2F Python Computing Engine
    Currently python computing engine provides standard F2F API communication interfaces (f2fSend/f2fReceive). It is essential to switch to provide the general methods specified in MPI (Message Passing Interface) in order to make F2F convenient for developers who are used to MPI. Python is well suited for prototyping hence in the initial version we port Python version of  MPI (mpi4py) to F2F and if it succeeds we proceed to low-level languages.
    Difficulty: "I Can Win!"
  • Sage adapter for F2F
    Sage is open source math system (alternative to Matlab, Magma, Maple), which allows to solve complex mathematical and algebraic task using Python command line interface or intuitive GUI-fronted. The goal is to make it possible to parallelize and distribute Sage computing tasks on multiple machines using F2F Computing. Easy but CPU non-efficient is the Python script based approach. The proper solution would be low-level port using C/C++ API.
    Difficulty:
    "Peace of Cake!"   - Script Based Approach
    Difficulty: "Hurt me plenty!" - Over C/C++ API
  • LLVM upgrade for F2F Low-Level Computing Engine
    LLVM is a low level virtual machine infrastructure which allows to run the native code independent of the  target architecture. It compiles the source code to the intermediate form which is then being distributed to the computing nodes and converted and linked into machine-dependent assembly code. Currently F2F supports old versions of LLVM (v2.5, 2.7 ... ), however there are new versions out already. The goal is to explore a new features of LLVM and extend the corresponding F2F computing engine.
    Difficulty: "Hard****"
  • JVM for F2F Java Computing Engine
    JVM (Java Virtual Machine) allows to run Java byte code independent of platform architecture. Java is a popular mainstream programming language, its support is crucial to make F2F a successful distributed computing platform. The goal is research the different implementations of JVMs (List of known JVMs), select the most suitable and use to implement the F2F JVM computing engine.
    Difficulty: "I Can Win!"
  • Sandboxing / Virtualization extension for F2F Platform Virtualization Engine.
    Sandboxing is another crucial aspect of any distributed platform. In order to secure the remote code execution different virtualization technologies are used. The platform (hardware) virtualization is one of them, it hides the physical characteristics of a computing platform from users, instead showing another abstract computing platform. The goal is to design and implement F2F computing module with the sandboxing support taking as base the exisiting virtualization solutions (QEMU, KVM and VDE). Currently we have python script based port of Qemu/KVM over VDE written by Mati Vait. Several tasks are now possible: upgrading Qemu/KVM port using C/C++ API, porting VirtualBox over VDE. Other virtualization platforms are wellcome:)
    Difficulty:
    "Hard****"   - VirtualBox
    Difficulty: "Nightmare!" - Qemu/KVM over VDE using C/C++ API

Friend-to-Friend Platform Logo Friend-to-Friend (F2F) Core: Communication Engines and Extensions

  • SSH communication adapter for F2F Signaling API
    Peer-to-Peer Network in F2F Computing is bootstrapped through existing secure authenticated channel, currently provided by one of Instant Messaging protocols. However it is not the only possibility, if consider the users of one SSH server (exmpl: math.ut.ee), we can relay the communication between two of these users over the math server using ssh clients and UNIX pipes (consider this specification as a base). This solution will allow users to join F2F network without having any Instant Messaging accounts.
    Difficulty:
    "I Can win!"

Friend-to-Friend Computing Applications

<...>

 

<TODO: restructure and updated the rest>

  • Computing Engines

  • Supervised by Artjom Lind
  • Communication Modules

    • Supervised by Artjom Lind
    • IP communication reestablishment after failure.
      Currently the Peer-to-Peer Network in F2F Computing is dependent on Instant Messaging protocols, in case of communication failure the bootstrap should be repeated, however this is not the case with short network failures. The process of communication restore should be quick enough in order not to reduce the performance of distributed applications. There is a number of solutions possible, one of them is local host cache (used in Gnutella), it keeps track of all host ever connected making the bootstrap process much quicker. The goal is to develop similar solution for F2F Peer-to-Peer network.
      Supervised by Artjom Lind
    •  IPv6 communication for Friend-to-Friend Computing.
      IPv4 is now officially depleted, Internet focused on IPv6, will it expand faster now? Will it put end on Network Address Translation ?  The advantages of IPv6 over IPv4 are obvious, hence there is a need to support the modern IP communication protocol in Friend-to-Friend computing.
      Supervised by Artjom Lind.
  • Core Features
    • DHT resource index
    • Globally Unique ID numbers
    • Secure authentication of Peers in computing groups
  • Front-Ends
    • More messenger plug-ins
  • Distributed Applications
    • Swarm based content sharing application
    • Distributed video rendering 
    • Multi-player games
    • Voice and Video over F2F
    • VPN over F2F
    • VDE over F2F
Document Actions