• Stars
    star
    3,424
  • Rank 13,054 (Top 0.3 %)
  • Language
    CSS
  • License
    Other
  • Created about 8 years ago
  • Updated almost 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Programming Models for Distributed Computation

Source repo for the book that I and my students in my course at Northeastern University, CS7680 Special Topics in Computing Systems: Programming Models for Distributed Computing, are writing on the topic of programming models for distributed systems.

This is a book about the programming constructs we use to build distributed systems. These range from the small, RPC, futures, actors, to the large; systems built up of these components like MapReduce and Spark. We explore issues and concerns central to distributed systems like consistency, availability, and fault tolerance, from the lens of the programming models and frameworks that the programmer uses to build these systems.

Please note that this is a work in progress, the book contents are in this repo, but we have not yet polished everything and published the final book online. Expected release: end of December

Note: the chapters can be viewed by manually going to http://dist-prog-book.com/chapter/x/article-name.html, e.g., http://dist-prog-book.com/chapter/2/futures.html. One we finish off the chapters that need the most work, we will "release" the book by putting a proper index page in place.

Note: we are currently in talks with a major publisher to publish this book as open-access textbook! Keep your fingers crossed!๐Ÿคž

Chapters

  1. RPC
  2. Futures & Promises
  3. Message-passing
  4. Distributed Programming Languages
  5. Languages Extended for Distribution
  6. CAP, Consistency, & CRDTs
  7. Programming Languages & Consistency
  8. Large-scale Parallel Batch Processing
  9. Large-scale Streaming

Editing this book

Workflow

  1. Fork/clone
  2. Edit on your local branch
  3. Make a pull request to the master branch with your changes. Do not commit directly to the repository
  4. After merge, visit the live site http://dist-prog-book.com/chapter/x/your-article.html

Note: We have CI that builds the book for each commit. Pull requests that don't build will not be merged.

Note: when PRs are merged, the site is built and redeployed automatically.

Structure

Chapters are located in the chapter folder of the root directory.

Dependencies

This site uses a Jekyll, a Ruby framework. You'll need Ruby and Bundler installed.

If you have Ruby already installed, to install Bundler, just do sudo gem install bundler

Building & Viewing

Please build and view your site locally before submitting a PR!

cd into the directory where you cloned this repository, then install the required gems with bundle install. This will automatically put the gems into ./vendor/bundle.

Start the server in the context of the bundle:

bundle exec jekyll serve

The generated site is available at http://localhost:4000

Note, this will bring you to the index page. If you'd like to see your chapter, make sure to navigate there explicitly, e.g., http://localhost:4000/chapter/1/rpc.html.

Adding/editing pages

Articles are in Markdown with straightforward YAML frontmatter.

You can include code, math (LaTeX syntax), figures, blockquotes, side notes, etc. You can also use regular BibTeX to make a bibliography. To see everything you can do, I've prepared an example article.

If you would like to add BibTeX entries to the bibliography for your chapter, check the _bibliography directory for a .bib file named after your chapter.

More Repositories

1

progfun-stats

Visualize statistics from the MOOC "Functional Programming Principles in Scala" using Scala!
Scala
202
star
2

spores

Scala Spores, safe mobile closures.
Scala
127
star
3

menthor

Parallelizing Machine Learning-- Functionally.
Scala
53
star
4

f-p

A new programming model for asynchronous and distributed programming.
Scala
36
star
5

papers-documents

Papers I (+ collaborators) have written or am currently writing
TeX
20
star
6

scala-pickling

Fast, customizable, boilerplate-free pickling support for Scala. MOVED TO http://github.com/scala/pickling
Scala
18
star
7

healy-article

Minimum working version of one of Kieran Healy's beautiful LaTeX article templates
TeX
18
star
8

cv

My CV
TeX
12
star
9

wwwheathermiller

Heather Miller's homepage
JavaScript
11
star
10

cs7680

Programming Models for Distributed Computation, analyses & minutes
8
star
11

scacs

Scala Cluster Service: a general cluster service + cluster support for Delite.
Scala
6
star
12

wwwcurryon

Website for Curry On!
CSS
5
star
13

scala-dataflow

TeX
5
star
14

wwwcs7680

http://heather.miller.am/teaching/cs7680
CSS
5
star
15

parcolls-extended

Extensions to Scala's Parallel Collections.
Scala
3
star
16

dissertation

Heather Miller's PhD Dissertation
TeX
3
star
17

testing-git-deploy-hooks

3
star
18

unisync

A non-destructive uni-directional sync. Think: รผber simple rsync that won't delete everything in the destination directory.
Scala
2
star
19

oss-community-bib

Bibliography covering peer-reviewed-research on Open Source Software (OSS) communities
1
star
20

reactive-stats

Visualize statistics from the MOOC "Principles of Reactive Programming" using Scala!
Scala
1
star
21

group-page-exp

HTML
1
star
22

wwwscala13

Website for Scala workshop 2013 (Scala'13)
CSS
1
star
23

srlzn-sandbox

Java
1
star
24

wwwscala14

Website for Scala workshop 2014 (Scala'14)
CSS
1
star
25

dep

Scala
1
star