Skip to content

A Simple High Performance Compututing Framework for [Federated] Machine Learning

License

Notifications You must be signed in to change notification settings

GentleWang1011/eggroll

 
 

Repository files navigation

drawing License CodeStyle Pinpoint Satellite Style

Eggroll is a multi-paradigm computing framework with integrated infrastructures.

Multi-Paradigm:

  • Support both online and offline applications
  • Support multiple programming languages
  • Support heterogeneous hardware
  • Support multiple levels of parallel computing

Integrated Infrastructures:

  • Compiler / Computing / Storage / Network synthesized
  • Eggroll on cluster / standalone / embedded devices

Building and Deploying Eggroll

You can check the deploy document here:

English 简体中文

Interactive Python Shell

To start an interactive python shell in standalone mode:

from eggroll.core.session import ErSession
from eggroll.core.conf_keys import SessionConfKeys
from eggroll.roll_pair.roll_pair import RollPairContext

options = {SessionConfKeys.CONFKEY_SESSION_DEPLOY_MODE: "standalone"}
session = ErSession(options=options)
rpc = RollPairContext(session)

rp = rpc.parallelize(range(10), options={'include_key': False})

Alternatively, if you want to use it in cluster mode:

from eggroll.core.session import ErSession
from eggroll.roll_pair.roll_pair import RollPairContext

session = ErSession(options=options)
rpc = RollPairContext(session)

rp = rpc.parallelize(range(10), options={'include_key': False})

Running Tests

Testing requires Eggroll having been built and deployed. Once it is completed, you can try the example test cases:

# standalone mode
python -m unittest eggroll.roll_pair.test.test_roll_pair.TestRollPairStandalone

# cluster mode
python -m unittest eggroll.roll_pair.test.test_roll_pair.TestRollPairCluster

Special thanks to:

About

A Simple High Performance Compututing Framework for [Federated] Machine Learning

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 76.1%
  • Python 16.6%
  • C++ 5.3%
  • Shell 1.6%
  • TSQL 0.2%
  • Makefile 0.2%