J-machine

  • J(Jeally), meant to be constructed out of large-scale many cheap nodes.
  • many processors in a single computer.
  • working towards a single solution.
  • parallel computer system
  • multithreading

Purpose:

  • explore parallelism in applications.
  • enable fine-grained co-operation of processors.
  • general programming model.

History of parallel processing:

  • 50s and early 60s.
  • single program with ILP/ SIMD.
  • late 80s - MIMD
  • processors on single chip technology.
  • first terms- “massively parallel processing”

Parallel programming techniques:

  • SPMD- explicit message passing.
  • pipelining- workflows/streaming, generalized to graphs, form of dataflow.

Requirements of a parallel computing system:

  • communication
  • synchronization
  • naming: necessary for communication.

Mechanisms used by J-machine for the above:

  • namespace:
segmented global virtual address space.
physical locations
naming- nodes and local address within the node.
way to define translation between local and global address space- explicitly done by the programmer.
  • synchronization:
- wake-up on write.
- send message: event occurs when a message is received
       - run the message handler (Explicit synchronization)  	 
       - control-based synchronization 	
- FIFO:
- full-empty bit for each location. 
- rule: producer cannot read from empty location 
- consumer cannot write to a full location
- mutual exclusion- form of synchronization.  
- data/address based synchronization: write/read location from memory.  
  • communication: cause the message to travel through the system.
- explicit messages (sends) :
- remote procedure call (called active messages)
- data + handler (program counter corresponding to the handler code) + priority 
- hardware support: message queue, message handler. 	
- future wake-up: waking up threads when data is available.
- alternative: shared memory (implicit, not implemented by J-machine).
- access memory across global address space (GAS).

Implementation:

  • communication:
why hardware?
- less context switches, less checking by OS for waiting for messages.  
- low overhead. 
- interrupts implemented instead. 
  • network
- network processing built into the ISA
- reduces overhead on send messages. 
  • data tagging
metadata to indicate whether the data is valid or not.
why hardware?
- need not be atomic 
- appropriate consistency model required in software.
- more overhead with software and polling. 

Users:

  • parallel processing

Evaluation:

  • Prototype built.
- Even today simulating machine consisting of 512 nodes is not easy (even just boot sequence!)
- At the time, cost of developing simulator would have been probably same as building prototype. 
  • Network performance- latency, bandwidth.
- Network must not slow down other processes. 
- Proves network is not the bottleneck. 
  • Synchronization
- Tagging vs non-tagging. 
  • Didn’t compare with software.
  • Performance vs scaling of the code.
- They justified curves with slope of less than one via limitations of network, especially with bisection bandwidth (worst-case bandwidth between parts of network divided to two equal sections)
- They observed superlinear speed-up for TSP which was caused by limited number of experiments. (Always average results from multiple runs for performance evaluation) (If you cannot repeat the experiment, at least build two sensors/monitors)
  • Verified the mechanisms to have lesser overhead.

Scaling problems

  • Weak scaling problem
- Size of problem scales with machine
- Fixed time to solution for growing problems
  • Strong scaling problem
- Fixed problem size with machine scale-up
- Faster solution for fixed problem

Identifying bottleneck

  • High network utilization, low CPU utilization => bandwidth-limited
  • Low network utilization, low CPU utilization => synchronization-limited

Thinking of J-Machine as research project

  • Architecture J-machine processor
  • Built processor
  • Designed and built board
  • Backplane
  • Chassis
  • Programs (assembly, tuned CST)
  • Compiler

Current systems similar to J-Machine

  • Xeon Phi
  • Sensor Networks
  • Warehouse-scale Computers

Mission of J-Machine

  • Providing vision into future.
  • Their vision did not came out.
  • Most of our applications today are not limited by communication or synchronization.
  • It turned out that software was good enough to implement all the mechanisms they manifested in J-Machine.