SlideShare a Scribd company logo
1 of 38
Download to read offline
ASPIRE	
  
Exploiting	
  Asynchronous	
  Parallelism	
  in	
  
	
  Iterative	
  Algorithms	
  using	
  a	
  
	
  Relaxed	
  Consistency	
  based	
  DSM	
  	
  
Keval	
  Vora,	
  Sai	
  Charan	
  Koduru,	
  Rajiv	
  Gupta	
  
OOPSLA’14	
  –	
  Portland,	
  Oregon	
  
October	
  24,	
  2014	
  
Motivation	
  
! Iterative	
  algorithms	
  
! PDE	
  Solvers:	
  Heat	
  Simulation	
  
! Graph	
  Analysis:	
  PageRank,	
  Community	
  Detection	
  
! Real-­‐world	
  datasets	
  are	
  typically	
  large	
  
! Social	
  Networks,	
  Genome	
  Graphs	
  
! Processing	
  on	
  distributed	
  memory	
  machines	
  
! Performance	
  
! Programmability	
  
02	
  
Outline	
  
! Iterative	
  Algorithms	
  
! Overview	
  of	
  ASPIRE	
  
! Existing	
  Weak	
  Memory	
  Models	
  
! Relaxed	
  Consistency	
  Protocol	
  
! Evaluation	
  
! Conclusion	
  
03	
  
Iterative	
  Algorithms	
  
! Data	
  Centric	
  
! Computation	
  written	
  for	
  a	
  single	
  element	
  
! Terminate	
  when	
  values	
  converge	
  
! Highly	
  parallel	
  execution	
  
! Network	
  Bound	
  
! Computation	
  is	
  simple	
  	
  
	
  
	
  
Fetch(c)	
  
Fetch(a)	
  
Fetch(b)	
  
c’	
  =	
  f	
  (c,	
  a,	
  b)	
  
Store(c,	
  c’)	
  
04	
  
Iterative	
  Algorithms	
  
! Data	
  Centric	
  
! Computation	
  written	
  for	
  a	
  single	
  element	
  
! Terminate	
  when	
  values	
  converge	
  
! Highly	
  parallel	
  execution	
  
! Network	
  Bound	
  
! Computation	
  is	
  simple	
  	
  
	
  
	
  
Fetch(c)	
  
Fetch(a)	
  
Fetch(b)	
  
c’	
  =	
  f	
  (c,	
  a,	
  b)	
  
Store(c,	
  c’)	
  
04	
  
Execution	
  Models	
  
! Bulk	
  Synchronous	
  Parallel	
  (BSP)	
  [CACM’90]	
  
! Disjoint	
  computation	
  and	
  communication	
  
! Computation	
  based	
  on	
  previous	
  iteration	
  
! Asynchronous	
  Parallelism	
  [Baudet	
  1978]	
  
! Overlap	
  computation	
  and	
  communication	
  
! Computation	
  based	
  on	
  current	
  iteration	
  
! Known	
  to	
  be	
  faster	
  than	
  BSP	
  	
  
	
  
	
  
05	
  
ASPIRE	
  
! Improve	
  asynchronous	
  execution	
  
! Make	
  them	
  faster	
  
! Tolerate	
  network	
  latencies	
  
! Tardis:	
  remote	
  fetch	
  is	
  ~2.3	
  times	
  of	
  local	
  fetch	
  
! Relaxing	
  consistency	
  
! Allow	
  use	
  of	
  stale	
  values	
  
! Without	
  affecting	
  convergence	
  
! Minimize	
  use	
  of	
  stale	
  values	
  
06	
  
! Improve	
  asynchronous	
  execution	
  
! Make	
  them	
  faster	
  
! Tolerate	
  network	
  latencies	
  
! Tardis:	
  remote	
  fetch	
  is	
  ~2.3	
  times	
  of	
  local	
  fetch	
  
! Relaxing	
  consistency	
  
! Allow	
  use	
  of	
  stale	
  values	
  
! Without	
  affecting	
  convergence	
  
! Minimize	
  use	
  of	
  stale	
  values	
  
ASPIRE	
  
Challenge:	
  Relax	
  consistency	
  without	
  
	
  delaying	
  convergence	
  
06	
  
! Delta	
  Consistency	
  [SPAA’97]	
  [PPoPP’03]	
  
! Controls	
  staleness	
  using	
  static	
  threshold	
  
	
  
	
  
Weak	
  Memory	
  Models	
  
Iterations	
  
Remote	
  Fetches	
  
High	
  	
  
Threshold	
  
Low	
  	
  
Threshold	
  
07	
  
! Delta	
  Consistency	
  [SPAA’97]	
  [PPoPP’03]	
  
! Controls	
  staleness	
  using	
  static	
  threshold	
  
	
  
	
  
	
  
Weak	
  Memory	
  Models	
  
Iterations	
  
Remote	
  Fetches	
  
Low	
  	
  
Threshold	
  
High	
  	
  
Threshold	
  
07	
  
! Delta	
  Consistency	
  [SPAA’97]	
  [PPoPP’03]	
  
! Controls	
  staleness	
  using	
  static	
  threshold	
  
	
  
	
  
Weak	
  Memory	
  Models	
  
Iterations	
  
Remote	
  Fetches	
  
High	
  	
  
Threshold	
  
Low	
  	
  
Threshold	
  
07	
  
! Delta	
  Consistency	
  [SPAA’97]	
  [PPoPP’03]	
  
! Controls	
  staleness	
  using	
  static	
  threshold	
  
	
  
	
  
	
  
	
  
	
  
	
  
Delayed	
  updates	
  affect	
  convergence	
  
Weak	
  Memory	
  Models	
  
Iterations	
  
Remote	
  Fetches	
  
High	
  	
  
Threshold	
  
Low	
  	
  
Threshold	
  
07	
  
! Delta	
  Consistency	
  [SPAA’97]	
  [PPoPP’03]	
  
! Controls	
  staleness	
  using	
  static	
  threshold	
  
	
  
	
  
	
  
	
  
	
  
	
  
Delayed	
  updates	
  affect	
  convergence	
  
Weak	
  Memory	
  Models	
  
Iterations	
  
Remote	
  Fetches	
  
High	
  	
  
Threshold	
  
Low	
  	
  
Threshold	
  ?	
  
07	
  
Relaxed	
  Consistency	
  Protocol	
  
! Tracks	
  staleness	
  to	
  exploit	
  it	
  
! Cached	
  objects	
  have	
  a	
  staleness	
  value	
  
! Best	
  efforts	
  to	
  minimize	
  stale	
  objects	
  
! Refresh	
  cached	
  objects	
  based	
  on	
  access	
  pattern	
  
! Provides	
  programming	
  support	
  
! Local	
  writes	
  must	
  be	
  immediately	
  visible	
  
! Once	
  an	
  object	
  is	
  read	
  by	
  a	
  thread,	
  no	
  earlier	
  writes	
  
to	
  it	
  can	
  be	
  read	
  by	
  the	
  same	
  thread	
  
08	
  
! Current-­‐hit	
  
! object	
  in	
  cache;	
  staleness	
  =	
  0	
  
! Stale-­‐hit	
  
! object	
  in	
  cache;	
  0	
  <	
  staleness	
  <=	
  t	
  
! Stale-­‐miss	
  
! object	
  in	
  cache;	
  staleness	
  >	
  t	
  
! Cache-­‐miss	
  
! object	
  not	
  in	
  cache	
  
Relaxed	
  Consistency	
  Protocol	
  
09	
  
Relaxed	
  Consistency	
  Protocol	
  
Shared	
  
Stale	
  
Cache-­‐Miss	
  /	
  Write	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
Evict	
  
[Local	
  Node]	
  
Hit	
  /	
  Write	
  
[Local	
  Node]	
  
Invalidate	
  
[Directory]	
  
++Staleness	
  
Stale-­‐Hit	
  
[Local	
  Node]	
  
Invalidate	
  
[Directory]	
  
++Staleness	
  
Evict	
  
[Local	
  Node]	
  
Stale-­‐Miss	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
Uncached	
  
Shared	
  
Write	
  
do	
  =	
  do	
  U	
  {mi}	
  	
  
Evict	
  
do	
  =	
  do	
  	
  {mi}	
  	
  
Read	
  
do	
  =	
  do	
  U	
  {mi}	
  	
  
Refresh	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
10	
  
Invalidate	
  
[Directory]	
  
++Staleness	
  
Relaxed	
  Consistency	
  Protocol	
  
Shared	
  
Stale	
  
Cache-­‐Miss	
  /	
  Write	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
Evict	
  
[Local	
  Node]	
  
Hit	
  /	
  Write	
  
[Local	
  Node]	
  
Stale-­‐Hit	
  
[Local	
  Node]	
  
Invalidate	
  
[Directory]	
  
++Staleness	
  
Evict	
  
[Local	
  Node]	
  
Uncached	
  
Shared	
  
Write	
  
do	
  =	
  do	
  U	
  {mi}	
  	
  
Evict	
  
do	
  =	
  do	
  	
  {mi}	
  	
  
Read	
  
do	
  =	
  do	
  U	
  {mi}	
  	
  
Stale-­‐Miss	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
Refresh	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
10	
  
Relaxed	
  Consistency	
  Protocol	
  
Shared	
  
Stale	
  
Cache-­‐Miss	
  /	
  Write	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
Evict	
  
[Local	
  Node]	
  
Hit	
  /	
  Write	
  
[Local	
  Node]	
  
Stale-­‐Hit	
  
[Local	
  Node]	
  
Invalidate	
  
[Directory]	
  
++Staleness	
  
Evict	
  
[Local	
  Node]	
  
Uncached	
  
Shared	
  
Write	
  
do	
  =	
  do	
  U	
  {mi}	
  	
  
Evict	
  
do	
  =	
  do	
  	
  {mi}	
  	
  
Read	
  
do	
  =	
  do	
  U	
  {mi}	
  	
  
Invalidate	
  
[Directory]	
  
++Staleness	
  
Stale-­‐Miss	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
Refresh	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
10	
  
Relaxed	
  Consistency	
  Protocol	
  
Shared	
  
Stale	
  
Cache-­‐Miss	
  /	
  Write	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
Evict	
  
[Local	
  Node]	
  
Hit	
  /	
  Write	
  
[Local	
  Node]	
  
Stale-­‐Hit	
  
[Local	
  Node]	
  
Invalidate	
  
[Directory]	
  
++Staleness	
  
Evict	
  
[Local	
  Node]	
  
Uncached	
  
Shared	
  
Write	
  
do	
  =	
  do	
  U	
  {mi}	
  	
  
Evict	
  
do	
  =	
  do	
  	
  {mi}	
  	
  
Read	
  
do	
  =	
  do	
  U	
  {mi}	
  	
  
Invalidate	
  
[Directory]	
  
++Staleness	
  
Stale-­‐Miss	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
Refresh	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
10	
  
Relaxed	
  Consistency	
  Protocol	
  
Shared	
  
Stale	
  
Cache-­‐Miss	
  /	
  Write	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
Evict	
  
[Local	
  Node]	
  
Hit	
  /	
  Write	
  
[Local	
  Node]	
  
Stale-­‐Hit	
  
[Local	
  Node]	
  
Invalidate	
  
[Directory]	
  
++Staleness	
  
Evict	
  
[Local	
  Node]	
  
Uncached	
  
Shared	
  
Write	
  
do	
  =	
  do	
  U	
  {mi}	
  	
  
Evict	
  
do	
  =	
  do	
  	
  {mi}	
  	
  
Read	
  
do	
  =	
  do	
  U	
  {mi}	
  	
  
Invalidate	
  
[Directory]	
  
++Staleness	
  
Stale-­‐Miss	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
Refresh	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
10	
  
Relaxed	
  Consistency	
  Protocol	
  
Shared	
  
Stale	
  
Cache-­‐Miss	
  /	
  Write	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
Evict	
  
[Local	
  Node]	
  
Hit	
  /	
  Write	
  
[Local	
  Node]	
  
Stale-­‐Hit	
  
[Local	
  Node]	
  
Invalidate	
  
[Directory]	
  
++Staleness	
  
Evict	
  
[Local	
  Node]	
  
Uncached	
  
Shared	
  
Write	
  
do	
  =	
  do	
  U	
  {mi}	
  	
  
Evict	
  
do	
  =	
  do	
  	
  {mi}	
  	
  
Read	
  
do	
  =	
  do	
  U	
  {mi}	
  	
  
Invalidate	
  
[Directory]	
  
++Staleness	
  
Stale-­‐Miss	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
Refresh	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
10	
  
Relaxed	
  Consistency	
  Protocol	
  
Shared	
  
Stale	
  
Cache-­‐Miss	
  /	
  Write	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
Evict	
  
[Local	
  Node]	
  
Hit	
  /	
  Write	
  
[Local	
  Node]	
  
Stale-­‐Hit	
  
[Local	
  Node]	
  
Invalidate	
  
[Directory]	
  
++Staleness	
  
Evict	
  
[Local	
  Node]	
  
Uncached	
  
Shared	
  
Write	
  
do	
  =	
  do	
  U	
  {mi}	
  	
  
Evict	
  
do	
  =	
  do	
  	
  {mi}	
  	
  
Read	
  
do	
  =	
  do	
  U	
  {mi}	
  	
  
Invalidate	
  
[Directory]	
  
++Staleness	
  
Stale-­‐Miss	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
Refresh	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
10	
  
Relaxed	
  Consistency	
  Protocol	
  
Shared	
  
Stale	
  
Cache-­‐Miss	
  /	
  Write	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
Evict	
  
[Local	
  Node]	
  
Hit	
  /	
  Write	
  
[Local	
  Node]	
  
Stale-­‐Hit	
  
[Local	
  Node]	
  
Invalidate	
  
[Directory]	
  
++Staleness	
  
Evict	
  
[Local	
  Node]	
  
Uncached	
  
Shared	
  
Write	
  
do	
  =	
  do	
  U	
  {mi}	
  	
  
Evict	
  
do	
  =	
  do	
  	
  {mi}	
  	
  
Read	
  
do	
  =	
  do	
  U	
  {mi}	
  	
  
Invalidate	
  
[Directory]	
  
++Staleness	
  
Stale-­‐Miss	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
Refresh	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
10	
  
Relaxed	
  Consistency	
  Protocol	
  
Shared	
  
Stale	
  
Cache-­‐Miss	
  /	
  Write	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
Evict	
  
[Local	
  Node]	
  
Hit	
  /	
  Write	
  
[Local	
  Node]	
  
Stale-­‐Hit	
  
[Local	
  Node]	
  
Invalidate	
  
[Directory]	
  
++Staleness	
  
Evict	
  
[Local	
  Node]	
  
Uncached	
  
Shared	
  
Write	
  
do	
  =	
  do	
  U	
  {mi}	
  	
  
Evict	
  
do	
  =	
  do	
  	
  {mi}	
  	
  
Read	
  
do	
  =	
  do	
  U	
  {mi}	
  	
  
Invalidate	
  
[Directory]	
  
++Staleness	
  
Stale-­‐Miss	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
Refresh	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
10	
  
Relaxed	
  Consistency	
  Protocol	
  
Shared	
  
Stale	
  
Cache-­‐Miss	
  /	
  Write	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
Evict	
  
[Local	
  Node]	
  
Hit	
  /	
  Write	
  
[Local	
  Node]	
  
Stale-­‐Hit	
  
[Local	
  Node]	
  
Invalidate	
  
[Directory]	
  
++Staleness	
  
Evict	
  
[Local	
  Node]	
  
Uncached	
  
Shared	
  
Write	
  
do	
  =	
  do	
  U	
  {mi}	
  	
  
Evict	
  
do	
  =	
  do	
  	
  {mi}	
  	
  
Read	
  
do	
  =	
  do	
  U	
  {mi}	
  	
  
Invalidate	
  
[Directory]	
  
++Staleness	
  
Stale-­‐Miss	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
Refresh	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
10	
  
Relaxed	
  Consistency	
  Protocol	
  
Shared	
  
Stale	
  
Cache-­‐Miss	
  /	
  Write	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
Evict	
  
[Local	
  Node]	
  
Hit	
  /	
  Write	
  
[Local	
  Node]	
  
Stale-­‐Hit	
  
[Local	
  Node]	
  
Invalidate	
  
[Directory]	
  
++Staleness	
  
Evict	
  
[Local	
  Node]	
  
Uncached	
  
Shared	
  
Write	
  
do	
  =	
  do	
  U	
  {mi}	
  	
  
Evict	
  
do	
  =	
  do	
  	
  {mi}	
  	
  
Read	
  
do	
  =	
  do	
  U	
  {mi}	
  	
  
Invalidate	
  
[Directory]	
  
++Staleness	
  
Stale-­‐Miss	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
Refresh	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
10	
  
Relaxed	
  Consistency	
  Protocol	
  
Shared	
  
Stale	
  
Cache-­‐Miss	
  /	
  Write	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
Evict	
  
[Local	
  Node]	
  
Hit	
  /	
  Write	
  
[Local	
  Node]	
  
Stale-­‐Hit	
  
[Local	
  Node]	
  
Invalidate	
  
[Directory]	
  
++Staleness	
  
Evict	
  
[Local	
  Node]	
  
Uncached	
  
Shared	
  
Write	
  
do	
  =	
  do	
  U	
  {mi}	
  	
  
Evict	
  
do	
  =	
  do	
  	
  {mi}	
  	
  
Read	
  
do	
  =	
  do	
  U	
  {mi}	
  	
  
Invalidate	
  
[Directory]	
  
++Staleness	
  
Stale-­‐Miss	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
Refresh	
  
[Local	
  Node]	
  
Staleness	
  =	
  0	
  
10	
  
Implementation	
  
! Similar	
  to	
  dyDSM	
  [Koduru	
  et	
  al.	
  2013]	
  
! Object	
  based	
  
! Protocol	
  relaxes	
  strict	
  consistency	
  
! Graphs	
  are	
  distributed	
  using	
  METIS	
  [SISC	
  99]	
  
! Runtime	
  
! Single	
  Writer	
  Model	
  
! Refresh	
  strategy	
  using	
  producer-­‐consumer	
  model	
  
! Termination	
  semantics	
  
11	
  
Experimental	
  Setup	
  
! Tardis	
  @	
  UCR	
  
! 16-­‐node	
  cluster	
  running	
  CentOS	
  6.3	
  
! 8	
  benchmarks	
  
! WS,	
  HS,	
  PR,	
  SSSP,	
  CC,	
  CD,	
  NP,	
  GC	
  
! 10	
  real-­‐world	
  inputs	
  
! SNAP	
  dataset	
  collection	
  
! UFL	
  sparse	
  matrix	
  collection	
  
12	
  
Execution	
  Time	
  
Pokec:	
  
30M	
  edges	
  
1.6M	
  vertices	
  
AtmosModl:	
  
10M	
  edges	
  
1.4M	
  vertices	
  
	
  
RCP	
  48.7%	
  faster	
  	
  
than	
  SCP+RW	
  and	
  
56%	
  faster	
  than	
  
best	
  Stale-­‐n	
  
13	
  
Remote	
  Fetches	
  
RCP	
  blocks	
  on	
  
41.8%	
  of	
  remote	
  
fetches	
  (7.5%	
  for	
  
PR,	
  WS	
  &	
  HS)	
  
	
  
Best	
  Stale-­‐n	
  blocks	
  
on	
  85.6%	
  of	
  
remote	
  fetches	
  
14	
  
Iterations	
  
RCP	
  requires	
  
49.5%	
  more	
  
iterations	
  
	
  
Stale-­‐2/Stale-­‐3	
  
require	
  146/176%	
  
more	
  iterations	
  
15	
  
Staleness	
  Percentage	
  
	
  97.4%	
  of	
  values	
  have	
  staleness	
  0;	
  2.2%	
  of	
  values	
  have	
  staleness	
  1	
  
16	
  
Graph	
  Processing	
  Frameworks	
  
! Distributed	
  memory	
  
! GraphLab	
  [VLDB’12],	
  Pregel	
  [SIGMOD’10],	
  
PowerGraph	
  [OSDI’12]	
  
! Shared	
  memory	
  
! Ligra	
  [PPoPP’13],	
  Grace	
  [CIDR’13],	
  Galois[PLDI’07]	
  
! Out-­‐of-­‐core	
  
! GraphChi	
  [OSDI’12],	
  X-­‐Stream	
  [SOSP’13]	
  
17	
  
 
! RCP	
  compares	
  favorably	
  with	
  GraphLab	
  
! RCP	
  is	
  orthogonal	
  to	
  these	
  frameworks	
  
! Can	
  be	
  used	
  in	
  their	
  asynchronous	
  engines	
  
GraphLab	
  
18	
  
! Different	
  inputs	
  
! Overhead	
  study	
  
! Design	
  choices	
  
! Invalidates	
  v/s	
  updates	
  
! Sensitivity	
  to	
  object	
  size	
  
! Sensitivity	
  to	
  writes	
  
! Sensitivity	
  to	
  communication	
  delay	
  
! Different	
  cluster	
  sizes	
  
	
  
Other	
  Experiments	
  
19	
  
Conclusion	
  
! Relaxing	
  consistency	
  is	
  useful	
  	
  
! With	
  controlled	
  use	
  of	
  staleness	
  
! Using	
  refresh	
  strategy	
  
! Efsicient	
  than	
  prior	
  DSMs	
  based	
  on	
  
! Strict	
  consistency	
  
! Delta	
  consistency	
  
! Processing	
  Frameworks	
  
! Easier	
  to	
  code	
  (Pregel)	
  
! Compares	
  favorably	
  (GraphLab)	
  
20	
  
! GRASP	
  
! http://grasp.cs.ucr.edu
! Acknowledgements
Thanks	
  

More Related Content

What's hot

Introduction to Apache ZooKeeper
Introduction to Apache ZooKeeperIntroduction to Apache ZooKeeper
Introduction to Apache ZooKeeperknowbigdata
 
Big data 101 for beginners devoxxpl
Big data 101 for beginners devoxxplBig data 101 for beginners devoxxpl
Big data 101 for beginners devoxxplDuyhai Doan
 
High Performance Solr and JVM Tuning Strategies used for MapQuest’s Search Ah...
High Performance Solr and JVM Tuning Strategies used for MapQuest’s Search Ah...High Performance Solr and JVM Tuning Strategies used for MapQuest’s Search Ah...
High Performance Solr and JVM Tuning Strategies used for MapQuest’s Search Ah...Lucidworks
 
Scaling SolrCloud to a Large Number of Collections - Fifth Elephant 2014
Scaling SolrCloud to a Large Number of Collections - Fifth Elephant 2014Scaling SolrCloud to a Large Number of Collections - Fifth Elephant 2014
Scaling SolrCloud to a Large Number of Collections - Fifth Elephant 2014Shalin Shekhar Mangar
 
Beyond Parallelize and Collect by Holden Karau
Beyond Parallelize and Collect by Holden KarauBeyond Parallelize and Collect by Holden Karau
Beyond Parallelize and Collect by Holden KarauSpark Summit
 
Lucene Revolution 2013 - Scaling Solr Cloud for Large-scale Social Media Anal...
Lucene Revolution 2013 - Scaling Solr Cloud for Large-scale Social Media Anal...Lucene Revolution 2013 - Scaling Solr Cloud for Large-scale Social Media Anal...
Lucene Revolution 2013 - Scaling Solr Cloud for Large-scale Social Media Anal...thelabdude
 
Solr cluster with SolrCloud at lucenerevolution (tutorial)
Solr cluster with SolrCloud at lucenerevolution (tutorial)Solr cluster with SolrCloud at lucenerevolution (tutorial)
Solr cluster with SolrCloud at lucenerevolution (tutorial)searchbox-com
 
Introduction to SolrCloud
Introduction to SolrCloudIntroduction to SolrCloud
Introduction to SolrCloudVarun Thacker
 
Benchmarking Solr Performance at Scale
Benchmarking Solr Performance at ScaleBenchmarking Solr Performance at Scale
Benchmarking Solr Performance at Scalethelabdude
 
Riak Training Session — Surge 2011
Riak Training Session — Surge 2011Riak Training Session — Surge 2011
Riak Training Session — Surge 2011DstroyAllModels
 
Best practices for highly available and large scale SolrCloud
Best practices for highly available and large scale SolrCloudBest practices for highly available and large scale SolrCloud
Best practices for highly available and large scale SolrCloudAnshum Gupta
 
Solr Exchange: Introduction to SolrCloud
Solr Exchange: Introduction to SolrCloudSolr Exchange: Introduction to SolrCloud
Solr Exchange: Introduction to SolrCloudthelabdude
 
Scaling Through Partitioning and Shard Splitting in Solr 4
Scaling Through Partitioning and Shard Splitting in Solr 4Scaling Through Partitioning and Shard Splitting in Solr 4
Scaling Through Partitioning and Shard Splitting in Solr 4thelabdude
 
Why is My Spark Job Failing? by Sandy Ryza of Cloudera
Why is My Spark Job Failing? by Sandy Ryza of ClouderaWhy is My Spark Job Failing? by Sandy Ryza of Cloudera
Why is My Spark Job Failing? by Sandy Ryza of ClouderaData Con LA
 
Loading 350M documents into a large Solr cluster: Presented by Dion Olsthoorn...
Loading 350M documents into a large Solr cluster: Presented by Dion Olsthoorn...Loading 350M documents into a large Solr cluster: Presented by Dion Olsthoorn...
Loading 350M documents into a large Solr cluster: Presented by Dion Olsthoorn...Lucidworks
 
Which cloud provider for your oracle database
Which cloud provider for your oracle databaseWhich cloud provider for your oracle database
Which cloud provider for your oracle databaseLaurent Leturgez
 

What's hot (20)

Introduction to Apache ZooKeeper
Introduction to Apache ZooKeeperIntroduction to Apache ZooKeeper
Introduction to Apache ZooKeeper
 
Cloudera Impala
Cloudera ImpalaCloudera Impala
Cloudera Impala
 
Big data 101 for beginners devoxxpl
Big data 101 for beginners devoxxplBig data 101 for beginners devoxxpl
Big data 101 for beginners devoxxpl
 
Scaling search with SolrCloud
Scaling search with SolrCloudScaling search with SolrCloud
Scaling search with SolrCloud
 
High Performance Solr and JVM Tuning Strategies used for MapQuest’s Search Ah...
High Performance Solr and JVM Tuning Strategies used for MapQuest’s Search Ah...High Performance Solr and JVM Tuning Strategies used for MapQuest’s Search Ah...
High Performance Solr and JVM Tuning Strategies used for MapQuest’s Search Ah...
 
Scaling Solr with Solr Cloud
Scaling Solr with Solr CloudScaling Solr with Solr Cloud
Scaling Solr with Solr Cloud
 
Scaling SolrCloud to a Large Number of Collections - Fifth Elephant 2014
Scaling SolrCloud to a Large Number of Collections - Fifth Elephant 2014Scaling SolrCloud to a Large Number of Collections - Fifth Elephant 2014
Scaling SolrCloud to a Large Number of Collections - Fifth Elephant 2014
 
Beyond Parallelize and Collect by Holden Karau
Beyond Parallelize and Collect by Holden KarauBeyond Parallelize and Collect by Holden Karau
Beyond Parallelize and Collect by Holden Karau
 
Lucene Revolution 2013 - Scaling Solr Cloud for Large-scale Social Media Anal...
Lucene Revolution 2013 - Scaling Solr Cloud for Large-scale Social Media Anal...Lucene Revolution 2013 - Scaling Solr Cloud for Large-scale Social Media Anal...
Lucene Revolution 2013 - Scaling Solr Cloud for Large-scale Social Media Anal...
 
Solr cluster with SolrCloud at lucenerevolution (tutorial)
Solr cluster with SolrCloud at lucenerevolution (tutorial)Solr cluster with SolrCloud at lucenerevolution (tutorial)
Solr cluster with SolrCloud at lucenerevolution (tutorial)
 
Introduction to SolrCloud
Introduction to SolrCloudIntroduction to SolrCloud
Introduction to SolrCloud
 
Benchmarking Solr Performance at Scale
Benchmarking Solr Performance at ScaleBenchmarking Solr Performance at Scale
Benchmarking Solr Performance at Scale
 
Riak Training Session — Surge 2011
Riak Training Session — Surge 2011Riak Training Session — Surge 2011
Riak Training Session — Surge 2011
 
Best practices for highly available and large scale SolrCloud
Best practices for highly available and large scale SolrCloudBest practices for highly available and large scale SolrCloud
Best practices for highly available and large scale SolrCloud
 
Solr Exchange: Introduction to SolrCloud
Solr Exchange: Introduction to SolrCloudSolr Exchange: Introduction to SolrCloud
Solr Exchange: Introduction to SolrCloud
 
High Performance Solr
High Performance SolrHigh Performance Solr
High Performance Solr
 
Scaling Through Partitioning and Shard Splitting in Solr 4
Scaling Through Partitioning and Shard Splitting in Solr 4Scaling Through Partitioning and Shard Splitting in Solr 4
Scaling Through Partitioning and Shard Splitting in Solr 4
 
Why is My Spark Job Failing? by Sandy Ryza of Cloudera
Why is My Spark Job Failing? by Sandy Ryza of ClouderaWhy is My Spark Job Failing? by Sandy Ryza of Cloudera
Why is My Spark Job Failing? by Sandy Ryza of Cloudera
 
Loading 350M documents into a large Solr cluster: Presented by Dion Olsthoorn...
Loading 350M documents into a large Solr cluster: Presented by Dion Olsthoorn...Loading 350M documents into a large Solr cluster: Presented by Dion Olsthoorn...
Loading 350M documents into a large Solr cluster: Presented by Dion Olsthoorn...
 
Which cloud provider for your oracle database
Which cloud provider for your oracle databaseWhich cloud provider for your oracle database
Which cloud provider for your oracle database
 

Similar to Exploiting Asynchronous Parallelism in Iterative Algorithms

Performance and predictability (1)
Performance and predictability (1)Performance and predictability (1)
Performance and predictability (1)RichardWarburton
 
Performance and Predictability - Richard Warburton
Performance and Predictability - Richard WarburtonPerformance and Predictability - Richard Warburton
Performance and Predictability - Richard WarburtonJAXLondon2014
 
Scalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYC
Scalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYCScalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYC
Scalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYCCal Henderson
 
Big Data & NoSQL - EFS'11 (Pavlo Baron)
Big Data & NoSQL - EFS'11 (Pavlo Baron)Big Data & NoSQL - EFS'11 (Pavlo Baron)
Big Data & NoSQL - EFS'11 (Pavlo Baron)Pavlo Baron
 
Web20expo Scalable Web Arch
Web20expo Scalable Web ArchWeb20expo Scalable Web Arch
Web20expo Scalable Web Archroyans
 
Web20expo Scalable Web Arch
Web20expo Scalable Web ArchWeb20expo Scalable Web Arch
Web20expo Scalable Web Archguest18a0f1
 
Web20expo Scalable Web Arch
Web20expo Scalable Web ArchWeb20expo Scalable Web Arch
Web20expo Scalable Web Archmclee
 
MNPHP Scalable Architecture 101 - Feb 3 2011
MNPHP Scalable Architecture 101 - Feb 3 2011MNPHP Scalable Architecture 101 - Feb 3 2011
MNPHP Scalable Architecture 101 - Feb 3 2011Mike Willbanks
 
All About Storeconfigs
All About StoreconfigsAll About Storeconfigs
All About StoreconfigsBrice Figureau
 
SQL Server 2014 In-Memory Tables (XTP, Hekaton)
SQL Server 2014 In-Memory Tables (XTP, Hekaton)SQL Server 2014 In-Memory Tables (XTP, Hekaton)
SQL Server 2014 In-Memory Tables (XTP, Hekaton)Tony Rogerson
 
Effective Scala (JavaDay Riga 2013)
Effective Scala (JavaDay Riga 2013)Effective Scala (JavaDay Riga 2013)
Effective Scala (JavaDay Riga 2013)mircodotta
 
Scaling Apache Storm - Strata + Hadoop World 2014
Scaling Apache Storm - Strata + Hadoop World 2014Scaling Apache Storm - Strata + Hadoop World 2014
Scaling Apache Storm - Strata + Hadoop World 2014P. Taylor Goetz
 
ABRIDGED VERSION - Joys & frustrations of putting 34,000 lines of Haskell in...
 ABRIDGED VERSION - Joys & frustrations of putting 34,000 lines of Haskell in... ABRIDGED VERSION - Joys & frustrations of putting 34,000 lines of Haskell in...
ABRIDGED VERSION - Joys & frustrations of putting 34,000 lines of Haskell in...Saurabh Nanda
 
Parallel Programming: Beyond the Critical Section
Parallel Programming: Beyond the Critical SectionParallel Programming: Beyond the Critical Section
Parallel Programming: Beyond the Critical SectionTony Albrecht
 
Cassandra for Sysadmins
Cassandra for SysadminsCassandra for Sysadmins
Cassandra for SysadminsNathan Milford
 
Scaling with MongoDB
Scaling with MongoDBScaling with MongoDB
Scaling with MongoDBMongoDB
 
Memory Optimization
Memory OptimizationMemory Optimization
Memory OptimizationWei Lin
 
Memory Optimization
Memory OptimizationMemory Optimization
Memory Optimizationguest3eed30
 
London Spark Meetup Project Tungsten Oct 12 2015
London Spark Meetup Project Tungsten Oct 12 2015London Spark Meetup Project Tungsten Oct 12 2015
London Spark Meetup Project Tungsten Oct 12 2015Chris Fregly
 
Scalable Web Architectures - Common Patterns & Approaches
Scalable Web Architectures - Common Patterns & ApproachesScalable Web Architectures - Common Patterns & Approaches
Scalable Web Architectures - Common Patterns & ApproachesCal Henderson
 

Similar to Exploiting Asynchronous Parallelism in Iterative Algorithms (20)

Performance and predictability (1)
Performance and predictability (1)Performance and predictability (1)
Performance and predictability (1)
 
Performance and Predictability - Richard Warburton
Performance and Predictability - Richard WarburtonPerformance and Predictability - Richard Warburton
Performance and Predictability - Richard Warburton
 
Scalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYC
Scalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYCScalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYC
Scalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYC
 
Big Data & NoSQL - EFS'11 (Pavlo Baron)
Big Data & NoSQL - EFS'11 (Pavlo Baron)Big Data & NoSQL - EFS'11 (Pavlo Baron)
Big Data & NoSQL - EFS'11 (Pavlo Baron)
 
Web20expo Scalable Web Arch
Web20expo Scalable Web ArchWeb20expo Scalable Web Arch
Web20expo Scalable Web Arch
 
Web20expo Scalable Web Arch
Web20expo Scalable Web ArchWeb20expo Scalable Web Arch
Web20expo Scalable Web Arch
 
Web20expo Scalable Web Arch
Web20expo Scalable Web ArchWeb20expo Scalable Web Arch
Web20expo Scalable Web Arch
 
MNPHP Scalable Architecture 101 - Feb 3 2011
MNPHP Scalable Architecture 101 - Feb 3 2011MNPHP Scalable Architecture 101 - Feb 3 2011
MNPHP Scalable Architecture 101 - Feb 3 2011
 
All About Storeconfigs
All About StoreconfigsAll About Storeconfigs
All About Storeconfigs
 
SQL Server 2014 In-Memory Tables (XTP, Hekaton)
SQL Server 2014 In-Memory Tables (XTP, Hekaton)SQL Server 2014 In-Memory Tables (XTP, Hekaton)
SQL Server 2014 In-Memory Tables (XTP, Hekaton)
 
Effective Scala (JavaDay Riga 2013)
Effective Scala (JavaDay Riga 2013)Effective Scala (JavaDay Riga 2013)
Effective Scala (JavaDay Riga 2013)
 
Scaling Apache Storm - Strata + Hadoop World 2014
Scaling Apache Storm - Strata + Hadoop World 2014Scaling Apache Storm - Strata + Hadoop World 2014
Scaling Apache Storm - Strata + Hadoop World 2014
 
ABRIDGED VERSION - Joys & frustrations of putting 34,000 lines of Haskell in...
 ABRIDGED VERSION - Joys & frustrations of putting 34,000 lines of Haskell in... ABRIDGED VERSION - Joys & frustrations of putting 34,000 lines of Haskell in...
ABRIDGED VERSION - Joys & frustrations of putting 34,000 lines of Haskell in...
 
Parallel Programming: Beyond the Critical Section
Parallel Programming: Beyond the Critical SectionParallel Programming: Beyond the Critical Section
Parallel Programming: Beyond the Critical Section
 
Cassandra for Sysadmins
Cassandra for SysadminsCassandra for Sysadmins
Cassandra for Sysadmins
 
Scaling with MongoDB
Scaling with MongoDBScaling with MongoDB
Scaling with MongoDB
 
Memory Optimization
Memory OptimizationMemory Optimization
Memory Optimization
 
Memory Optimization
Memory OptimizationMemory Optimization
Memory Optimization
 
London Spark Meetup Project Tungsten Oct 12 2015
London Spark Meetup Project Tungsten Oct 12 2015London Spark Meetup Project Tungsten Oct 12 2015
London Spark Meetup Project Tungsten Oct 12 2015
 
Scalable Web Architectures - Common Patterns & Approaches
Scalable Web Architectures - Common Patterns & ApproachesScalable Web Architectures - Common Patterns & Approaches
Scalable Web Architectures - Common Patterns & Approaches
 

Recently uploaded

Replisome-Cohesin Interfacing A Molecular Perspective.pdf
Replisome-Cohesin Interfacing A Molecular Perspective.pdfReplisome-Cohesin Interfacing A Molecular Perspective.pdf
Replisome-Cohesin Interfacing A Molecular Perspective.pdfAtiaGohar1
 
Abnormal LFTs rate of deco and NAFLD.pptx
Abnormal LFTs rate of deco and NAFLD.pptxAbnormal LFTs rate of deco and NAFLD.pptx
Abnormal LFTs rate of deco and NAFLD.pptxzeus70441
 
Immunoblott technique for protein detection.ppt
Immunoblott technique for protein detection.pptImmunoblott technique for protein detection.ppt
Immunoblott technique for protein detection.pptAmirRaziq1
 
final waves properties grade 7 - third quarter
final waves properties grade 7 - third quarterfinal waves properties grade 7 - third quarter
final waves properties grade 7 - third quarterHanHyoKim
 
Observation of Gravitational Waves from the Coalescence of a 2.5–4.5 M⊙ Compa...
Observation of Gravitational Waves from the Coalescence of a 2.5–4.5 M⊙ Compa...Observation of Gravitational Waves from the Coalescence of a 2.5–4.5 M⊙ Compa...
Observation of Gravitational Waves from the Coalescence of a 2.5–4.5 M⊙ Compa...Sérgio Sacani
 
DOG BITE management in pediatrics # for Pediatric pgs# topic presentation # f...
DOG BITE management in pediatrics # for Pediatric pgs# topic presentation # f...DOG BITE management in pediatrics # for Pediatric pgs# topic presentation # f...
DOG BITE management in pediatrics # for Pediatric pgs# topic presentation # f...HafsaHussainp
 
How we decide powerpoint presentation.pptx
How we decide powerpoint presentation.pptxHow we decide powerpoint presentation.pptx
How we decide powerpoint presentation.pptxJosielynTars
 
Science (Communication) and Wikipedia - Potentials and Pitfalls
Science (Communication) and Wikipedia - Potentials and PitfallsScience (Communication) and Wikipedia - Potentials and Pitfalls
Science (Communication) and Wikipedia - Potentials and PitfallsDobusch Leonhard
 
FBI Profiling - Forensic Psychology.pptx
FBI Profiling - Forensic Psychology.pptxFBI Profiling - Forensic Psychology.pptx
FBI Profiling - Forensic Psychology.pptxPayal Shrivastava
 
6.1 Pests of Groundnut_Binomics_Identification_Dr.UPR
6.1 Pests of Groundnut_Binomics_Identification_Dr.UPR6.1 Pests of Groundnut_Binomics_Identification_Dr.UPR
6.1 Pests of Groundnut_Binomics_Identification_Dr.UPRPirithiRaju
 
Quarter 4_Grade 8_Digestive System Structure and Functions
Quarter 4_Grade 8_Digestive System Structure and FunctionsQuarter 4_Grade 8_Digestive System Structure and Functions
Quarter 4_Grade 8_Digestive System Structure and FunctionsCharlene Llagas
 
WEEK 4 PHYSICAL SCIENCE QUARTER 3 FOR G11
WEEK 4 PHYSICAL SCIENCE QUARTER 3 FOR G11WEEK 4 PHYSICAL SCIENCE QUARTER 3 FOR G11
WEEK 4 PHYSICAL SCIENCE QUARTER 3 FOR G11GelineAvendao
 
projectile motion, impulse and moment
projectile  motion, impulse  and  momentprojectile  motion, impulse  and  moment
projectile motion, impulse and momentdonamiaquintan2
 
Introduction of Human Body & Structure of cell.pptx
Introduction of Human Body & Structure of cell.pptxIntroduction of Human Body & Structure of cell.pptx
Introduction of Human Body & Structure of cell.pptxMedical College
 
GenAI talk for Young at Wageningen University & Research (WUR) March 2024
GenAI talk for Young at Wageningen University & Research (WUR) March 2024GenAI talk for Young at Wageningen University & Research (WUR) March 2024
GenAI talk for Young at Wageningen University & Research (WUR) March 2024Jene van der Heide
 
Observational constraints on mergers creating magnetism in massive stars
Observational constraints on mergers creating magnetism in massive starsObservational constraints on mergers creating magnetism in massive stars
Observational constraints on mergers creating magnetism in massive starsSérgio Sacani
 
GENERAL PHYSICS 2 REFRACTION OF LIGHT SENIOR HIGH SCHOOL GENPHYS2.pptx
GENERAL PHYSICS 2 REFRACTION OF LIGHT SENIOR HIGH SCHOOL GENPHYS2.pptxGENERAL PHYSICS 2 REFRACTION OF LIGHT SENIOR HIGH SCHOOL GENPHYS2.pptx
GENERAL PHYSICS 2 REFRACTION OF LIGHT SENIOR HIGH SCHOOL GENPHYS2.pptxRitchAndruAgustin
 
Combining Asynchronous Task Parallelism and Intel SGX for Secure Deep Learning
Combining Asynchronous Task Parallelism and Intel SGX for Secure Deep LearningCombining Asynchronous Task Parallelism and Intel SGX for Secure Deep Learning
Combining Asynchronous Task Parallelism and Intel SGX for Secure Deep Learningvschiavoni
 
Q4-Mod-1c-Quiz-Projectile-333344444.pptx
Q4-Mod-1c-Quiz-Projectile-333344444.pptxQ4-Mod-1c-Quiz-Projectile-333344444.pptx
Q4-Mod-1c-Quiz-Projectile-333344444.pptxtuking87
 

Recently uploaded (20)

Replisome-Cohesin Interfacing A Molecular Perspective.pdf
Replisome-Cohesin Interfacing A Molecular Perspective.pdfReplisome-Cohesin Interfacing A Molecular Perspective.pdf
Replisome-Cohesin Interfacing A Molecular Perspective.pdf
 
Abnormal LFTs rate of deco and NAFLD.pptx
Abnormal LFTs rate of deco and NAFLD.pptxAbnormal LFTs rate of deco and NAFLD.pptx
Abnormal LFTs rate of deco and NAFLD.pptx
 
Immunoblott technique for protein detection.ppt
Immunoblott technique for protein detection.pptImmunoblott technique for protein detection.ppt
Immunoblott technique for protein detection.ppt
 
final waves properties grade 7 - third quarter
final waves properties grade 7 - third quarterfinal waves properties grade 7 - third quarter
final waves properties grade 7 - third quarter
 
Observation of Gravitational Waves from the Coalescence of a 2.5–4.5 M⊙ Compa...
Observation of Gravitational Waves from the Coalescence of a 2.5–4.5 M⊙ Compa...Observation of Gravitational Waves from the Coalescence of a 2.5–4.5 M⊙ Compa...
Observation of Gravitational Waves from the Coalescence of a 2.5–4.5 M⊙ Compa...
 
DOG BITE management in pediatrics # for Pediatric pgs# topic presentation # f...
DOG BITE management in pediatrics # for Pediatric pgs# topic presentation # f...DOG BITE management in pediatrics # for Pediatric pgs# topic presentation # f...
DOG BITE management in pediatrics # for Pediatric pgs# topic presentation # f...
 
How we decide powerpoint presentation.pptx
How we decide powerpoint presentation.pptxHow we decide powerpoint presentation.pptx
How we decide powerpoint presentation.pptx
 
Science (Communication) and Wikipedia - Potentials and Pitfalls
Science (Communication) and Wikipedia - Potentials and PitfallsScience (Communication) and Wikipedia - Potentials and Pitfalls
Science (Communication) and Wikipedia - Potentials and Pitfalls
 
Let’s Say Someone Did Drop the Bomb. Then What?
Let’s Say Someone Did Drop the Bomb. Then What?Let’s Say Someone Did Drop the Bomb. Then What?
Let’s Say Someone Did Drop the Bomb. Then What?
 
FBI Profiling - Forensic Psychology.pptx
FBI Profiling - Forensic Psychology.pptxFBI Profiling - Forensic Psychology.pptx
FBI Profiling - Forensic Psychology.pptx
 
6.1 Pests of Groundnut_Binomics_Identification_Dr.UPR
6.1 Pests of Groundnut_Binomics_Identification_Dr.UPR6.1 Pests of Groundnut_Binomics_Identification_Dr.UPR
6.1 Pests of Groundnut_Binomics_Identification_Dr.UPR
 
Quarter 4_Grade 8_Digestive System Structure and Functions
Quarter 4_Grade 8_Digestive System Structure and FunctionsQuarter 4_Grade 8_Digestive System Structure and Functions
Quarter 4_Grade 8_Digestive System Structure and Functions
 
WEEK 4 PHYSICAL SCIENCE QUARTER 3 FOR G11
WEEK 4 PHYSICAL SCIENCE QUARTER 3 FOR G11WEEK 4 PHYSICAL SCIENCE QUARTER 3 FOR G11
WEEK 4 PHYSICAL SCIENCE QUARTER 3 FOR G11
 
projectile motion, impulse and moment
projectile  motion, impulse  and  momentprojectile  motion, impulse  and  moment
projectile motion, impulse and moment
 
Introduction of Human Body & Structure of cell.pptx
Introduction of Human Body & Structure of cell.pptxIntroduction of Human Body & Structure of cell.pptx
Introduction of Human Body & Structure of cell.pptx
 
GenAI talk for Young at Wageningen University & Research (WUR) March 2024
GenAI talk for Young at Wageningen University & Research (WUR) March 2024GenAI talk for Young at Wageningen University & Research (WUR) March 2024
GenAI talk for Young at Wageningen University & Research (WUR) March 2024
 
Observational constraints on mergers creating magnetism in massive stars
Observational constraints on mergers creating magnetism in massive starsObservational constraints on mergers creating magnetism in massive stars
Observational constraints on mergers creating magnetism in massive stars
 
GENERAL PHYSICS 2 REFRACTION OF LIGHT SENIOR HIGH SCHOOL GENPHYS2.pptx
GENERAL PHYSICS 2 REFRACTION OF LIGHT SENIOR HIGH SCHOOL GENPHYS2.pptxGENERAL PHYSICS 2 REFRACTION OF LIGHT SENIOR HIGH SCHOOL GENPHYS2.pptx
GENERAL PHYSICS 2 REFRACTION OF LIGHT SENIOR HIGH SCHOOL GENPHYS2.pptx
 
Combining Asynchronous Task Parallelism and Intel SGX for Secure Deep Learning
Combining Asynchronous Task Parallelism and Intel SGX for Secure Deep LearningCombining Asynchronous Task Parallelism and Intel SGX for Secure Deep Learning
Combining Asynchronous Task Parallelism and Intel SGX for Secure Deep Learning
 
Q4-Mod-1c-Quiz-Projectile-333344444.pptx
Q4-Mod-1c-Quiz-Projectile-333344444.pptxQ4-Mod-1c-Quiz-Projectile-333344444.pptx
Q4-Mod-1c-Quiz-Projectile-333344444.pptx
 

Exploiting Asynchronous Parallelism in Iterative Algorithms

  • 1. ASPIRE   Exploiting  Asynchronous  Parallelism  in    Iterative  Algorithms  using  a    Relaxed  Consistency  based  DSM     Keval  Vora,  Sai  Charan  Koduru,  Rajiv  Gupta   OOPSLA’14  –  Portland,  Oregon   October  24,  2014  
  • 2. Motivation   ! Iterative  algorithms   ! PDE  Solvers:  Heat  Simulation   ! Graph  Analysis:  PageRank,  Community  Detection   ! Real-­‐world  datasets  are  typically  large   ! Social  Networks,  Genome  Graphs   ! Processing  on  distributed  memory  machines   ! Performance   ! Programmability   02  
  • 3. Outline   ! Iterative  Algorithms   ! Overview  of  ASPIRE   ! Existing  Weak  Memory  Models   ! Relaxed  Consistency  Protocol   ! Evaluation   ! Conclusion   03  
  • 4. Iterative  Algorithms   ! Data  Centric   ! Computation  written  for  a  single  element   ! Terminate  when  values  converge   ! Highly  parallel  execution   ! Network  Bound   ! Computation  is  simple         Fetch(c)   Fetch(a)   Fetch(b)   c’  =  f  (c,  a,  b)   Store(c,  c’)   04  
  • 5. Iterative  Algorithms   ! Data  Centric   ! Computation  written  for  a  single  element   ! Terminate  when  values  converge   ! Highly  parallel  execution   ! Network  Bound   ! Computation  is  simple         Fetch(c)   Fetch(a)   Fetch(b)   c’  =  f  (c,  a,  b)   Store(c,  c’)   04  
  • 6. Execution  Models   ! Bulk  Synchronous  Parallel  (BSP)  [CACM’90]   ! Disjoint  computation  and  communication   ! Computation  based  on  previous  iteration   ! Asynchronous  Parallelism  [Baudet  1978]   ! Overlap  computation  and  communication   ! Computation  based  on  current  iteration   ! Known  to  be  faster  than  BSP         05  
  • 7. ASPIRE   ! Improve  asynchronous  execution   ! Make  them  faster   ! Tolerate  network  latencies   ! Tardis:  remote  fetch  is  ~2.3  times  of  local  fetch   ! Relaxing  consistency   ! Allow  use  of  stale  values   ! Without  affecting  convergence   ! Minimize  use  of  stale  values   06  
  • 8. ! Improve  asynchronous  execution   ! Make  them  faster   ! Tolerate  network  latencies   ! Tardis:  remote  fetch  is  ~2.3  times  of  local  fetch   ! Relaxing  consistency   ! Allow  use  of  stale  values   ! Without  affecting  convergence   ! Minimize  use  of  stale  values   ASPIRE   Challenge:  Relax  consistency  without    delaying  convergence   06  
  • 9. ! Delta  Consistency  [SPAA’97]  [PPoPP’03]   ! Controls  staleness  using  static  threshold       Weak  Memory  Models   Iterations   Remote  Fetches   High     Threshold   Low     Threshold   07  
  • 10. ! Delta  Consistency  [SPAA’97]  [PPoPP’03]   ! Controls  staleness  using  static  threshold         Weak  Memory  Models   Iterations   Remote  Fetches   Low     Threshold   High     Threshold   07  
  • 11. ! Delta  Consistency  [SPAA’97]  [PPoPP’03]   ! Controls  staleness  using  static  threshold       Weak  Memory  Models   Iterations   Remote  Fetches   High     Threshold   Low     Threshold   07  
  • 12. ! Delta  Consistency  [SPAA’97]  [PPoPP’03]   ! Controls  staleness  using  static  threshold               Delayed  updates  affect  convergence   Weak  Memory  Models   Iterations   Remote  Fetches   High     Threshold   Low     Threshold   07  
  • 13. ! Delta  Consistency  [SPAA’97]  [PPoPP’03]   ! Controls  staleness  using  static  threshold               Delayed  updates  affect  convergence   Weak  Memory  Models   Iterations   Remote  Fetches   High     Threshold   Low     Threshold  ?   07  
  • 14. Relaxed  Consistency  Protocol   ! Tracks  staleness  to  exploit  it   ! Cached  objects  have  a  staleness  value   ! Best  efforts  to  minimize  stale  objects   ! Refresh  cached  objects  based  on  access  pattern   ! Provides  programming  support   ! Local  writes  must  be  immediately  visible   ! Once  an  object  is  read  by  a  thread,  no  earlier  writes   to  it  can  be  read  by  the  same  thread   08  
  • 15. ! Current-­‐hit   ! object  in  cache;  staleness  =  0   ! Stale-­‐hit   ! object  in  cache;  0  <  staleness  <=  t   ! Stale-­‐miss   ! object  in  cache;  staleness  >  t   ! Cache-­‐miss   ! object  not  in  cache   Relaxed  Consistency  Protocol   09  
  • 16. Relaxed  Consistency  Protocol   Shared   Stale   Cache-­‐Miss  /  Write   [Local  Node]   Staleness  =  0   Evict   [Local  Node]   Hit  /  Write   [Local  Node]   Invalidate   [Directory]   ++Staleness   Stale-­‐Hit   [Local  Node]   Invalidate   [Directory]   ++Staleness   Evict   [Local  Node]   Stale-­‐Miss   [Local  Node]   Staleness  =  0   Uncached   Shared   Write   do  =  do  U  {mi}     Evict   do  =  do    {mi}     Read   do  =  do  U  {mi}     Refresh   [Local  Node]   Staleness  =  0   10  
  • 17. Invalidate   [Directory]   ++Staleness   Relaxed  Consistency  Protocol   Shared   Stale   Cache-­‐Miss  /  Write   [Local  Node]   Staleness  =  0   Evict   [Local  Node]   Hit  /  Write   [Local  Node]   Stale-­‐Hit   [Local  Node]   Invalidate   [Directory]   ++Staleness   Evict   [Local  Node]   Uncached   Shared   Write   do  =  do  U  {mi}     Evict   do  =  do    {mi}     Read   do  =  do  U  {mi}     Stale-­‐Miss   [Local  Node]   Staleness  =  0   Refresh   [Local  Node]   Staleness  =  0   10  
  • 18. Relaxed  Consistency  Protocol   Shared   Stale   Cache-­‐Miss  /  Write   [Local  Node]   Staleness  =  0   Evict   [Local  Node]   Hit  /  Write   [Local  Node]   Stale-­‐Hit   [Local  Node]   Invalidate   [Directory]   ++Staleness   Evict   [Local  Node]   Uncached   Shared   Write   do  =  do  U  {mi}     Evict   do  =  do    {mi}     Read   do  =  do  U  {mi}     Invalidate   [Directory]   ++Staleness   Stale-­‐Miss   [Local  Node]   Staleness  =  0   Refresh   [Local  Node]   Staleness  =  0   10  
  • 19. Relaxed  Consistency  Protocol   Shared   Stale   Cache-­‐Miss  /  Write   [Local  Node]   Staleness  =  0   Evict   [Local  Node]   Hit  /  Write   [Local  Node]   Stale-­‐Hit   [Local  Node]   Invalidate   [Directory]   ++Staleness   Evict   [Local  Node]   Uncached   Shared   Write   do  =  do  U  {mi}     Evict   do  =  do    {mi}     Read   do  =  do  U  {mi}     Invalidate   [Directory]   ++Staleness   Stale-­‐Miss   [Local  Node]   Staleness  =  0   Refresh   [Local  Node]   Staleness  =  0   10  
  • 20. Relaxed  Consistency  Protocol   Shared   Stale   Cache-­‐Miss  /  Write   [Local  Node]   Staleness  =  0   Evict   [Local  Node]   Hit  /  Write   [Local  Node]   Stale-­‐Hit   [Local  Node]   Invalidate   [Directory]   ++Staleness   Evict   [Local  Node]   Uncached   Shared   Write   do  =  do  U  {mi}     Evict   do  =  do    {mi}     Read   do  =  do  U  {mi}     Invalidate   [Directory]   ++Staleness   Stale-­‐Miss   [Local  Node]   Staleness  =  0   Refresh   [Local  Node]   Staleness  =  0   10  
  • 21. Relaxed  Consistency  Protocol   Shared   Stale   Cache-­‐Miss  /  Write   [Local  Node]   Staleness  =  0   Evict   [Local  Node]   Hit  /  Write   [Local  Node]   Stale-­‐Hit   [Local  Node]   Invalidate   [Directory]   ++Staleness   Evict   [Local  Node]   Uncached   Shared   Write   do  =  do  U  {mi}     Evict   do  =  do    {mi}     Read   do  =  do  U  {mi}     Invalidate   [Directory]   ++Staleness   Stale-­‐Miss   [Local  Node]   Staleness  =  0   Refresh   [Local  Node]   Staleness  =  0   10  
  • 22. Relaxed  Consistency  Protocol   Shared   Stale   Cache-­‐Miss  /  Write   [Local  Node]   Staleness  =  0   Evict   [Local  Node]   Hit  /  Write   [Local  Node]   Stale-­‐Hit   [Local  Node]   Invalidate   [Directory]   ++Staleness   Evict   [Local  Node]   Uncached   Shared   Write   do  =  do  U  {mi}     Evict   do  =  do    {mi}     Read   do  =  do  U  {mi}     Invalidate   [Directory]   ++Staleness   Stale-­‐Miss   [Local  Node]   Staleness  =  0   Refresh   [Local  Node]   Staleness  =  0   10  
  • 23. Relaxed  Consistency  Protocol   Shared   Stale   Cache-­‐Miss  /  Write   [Local  Node]   Staleness  =  0   Evict   [Local  Node]   Hit  /  Write   [Local  Node]   Stale-­‐Hit   [Local  Node]   Invalidate   [Directory]   ++Staleness   Evict   [Local  Node]   Uncached   Shared   Write   do  =  do  U  {mi}     Evict   do  =  do    {mi}     Read   do  =  do  U  {mi}     Invalidate   [Directory]   ++Staleness   Stale-­‐Miss   [Local  Node]   Staleness  =  0   Refresh   [Local  Node]   Staleness  =  0   10  
  • 24. Relaxed  Consistency  Protocol   Shared   Stale   Cache-­‐Miss  /  Write   [Local  Node]   Staleness  =  0   Evict   [Local  Node]   Hit  /  Write   [Local  Node]   Stale-­‐Hit   [Local  Node]   Invalidate   [Directory]   ++Staleness   Evict   [Local  Node]   Uncached   Shared   Write   do  =  do  U  {mi}     Evict   do  =  do    {mi}     Read   do  =  do  U  {mi}     Invalidate   [Directory]   ++Staleness   Stale-­‐Miss   [Local  Node]   Staleness  =  0   Refresh   [Local  Node]   Staleness  =  0   10  
  • 25. Relaxed  Consistency  Protocol   Shared   Stale   Cache-­‐Miss  /  Write   [Local  Node]   Staleness  =  0   Evict   [Local  Node]   Hit  /  Write   [Local  Node]   Stale-­‐Hit   [Local  Node]   Invalidate   [Directory]   ++Staleness   Evict   [Local  Node]   Uncached   Shared   Write   do  =  do  U  {mi}     Evict   do  =  do    {mi}     Read   do  =  do  U  {mi}     Invalidate   [Directory]   ++Staleness   Stale-­‐Miss   [Local  Node]   Staleness  =  0   Refresh   [Local  Node]   Staleness  =  0   10  
  • 26. Relaxed  Consistency  Protocol   Shared   Stale   Cache-­‐Miss  /  Write   [Local  Node]   Staleness  =  0   Evict   [Local  Node]   Hit  /  Write   [Local  Node]   Stale-­‐Hit   [Local  Node]   Invalidate   [Directory]   ++Staleness   Evict   [Local  Node]   Uncached   Shared   Write   do  =  do  U  {mi}     Evict   do  =  do    {mi}     Read   do  =  do  U  {mi}     Invalidate   [Directory]   ++Staleness   Stale-­‐Miss   [Local  Node]   Staleness  =  0   Refresh   [Local  Node]   Staleness  =  0   10  
  • 27. Relaxed  Consistency  Protocol   Shared   Stale   Cache-­‐Miss  /  Write   [Local  Node]   Staleness  =  0   Evict   [Local  Node]   Hit  /  Write   [Local  Node]   Stale-­‐Hit   [Local  Node]   Invalidate   [Directory]   ++Staleness   Evict   [Local  Node]   Uncached   Shared   Write   do  =  do  U  {mi}     Evict   do  =  do    {mi}     Read   do  =  do  U  {mi}     Invalidate   [Directory]   ++Staleness   Stale-­‐Miss   [Local  Node]   Staleness  =  0   Refresh   [Local  Node]   Staleness  =  0   10  
  • 28. Implementation   ! Similar  to  dyDSM  [Koduru  et  al.  2013]   ! Object  based   ! Protocol  relaxes  strict  consistency   ! Graphs  are  distributed  using  METIS  [SISC  99]   ! Runtime   ! Single  Writer  Model   ! Refresh  strategy  using  producer-­‐consumer  model   ! Termination  semantics   11  
  • 29. Experimental  Setup   ! Tardis  @  UCR   ! 16-­‐node  cluster  running  CentOS  6.3   ! 8  benchmarks   ! WS,  HS,  PR,  SSSP,  CC,  CD,  NP,  GC   ! 10  real-­‐world  inputs   ! SNAP  dataset  collection   ! UFL  sparse  matrix  collection   12  
  • 30. Execution  Time   Pokec:   30M  edges   1.6M  vertices   AtmosModl:   10M  edges   1.4M  vertices     RCP  48.7%  faster     than  SCP+RW  and   56%  faster  than   best  Stale-­‐n   13  
  • 31. Remote  Fetches   RCP  blocks  on   41.8%  of  remote   fetches  (7.5%  for   PR,  WS  &  HS)     Best  Stale-­‐n  blocks   on  85.6%  of   remote  fetches   14  
  • 32. Iterations   RCP  requires   49.5%  more   iterations     Stale-­‐2/Stale-­‐3   require  146/176%   more  iterations   15  
  • 33. Staleness  Percentage    97.4%  of  values  have  staleness  0;  2.2%  of  values  have  staleness  1   16  
  • 34. Graph  Processing  Frameworks   ! Distributed  memory   ! GraphLab  [VLDB’12],  Pregel  [SIGMOD’10],   PowerGraph  [OSDI’12]   ! Shared  memory   ! Ligra  [PPoPP’13],  Grace  [CIDR’13],  Galois[PLDI’07]   ! Out-­‐of-­‐core   ! GraphChi  [OSDI’12],  X-­‐Stream  [SOSP’13]   17  
  • 35.   ! RCP  compares  favorably  with  GraphLab   ! RCP  is  orthogonal  to  these  frameworks   ! Can  be  used  in  their  asynchronous  engines   GraphLab   18  
  • 36. ! Different  inputs   ! Overhead  study   ! Design  choices   ! Invalidates  v/s  updates   ! Sensitivity  to  object  size   ! Sensitivity  to  writes   ! Sensitivity  to  communication  delay   ! Different  cluster  sizes     Other  Experiments   19  
  • 37. Conclusion   ! Relaxing  consistency  is  useful     ! With  controlled  use  of  staleness   ! Using  refresh  strategy   ! Efsicient  than  prior  DSMs  based  on   ! Strict  consistency   ! Delta  consistency   ! Processing  Frameworks   ! Easier  to  code  (Pregel)   ! Compares  favorably  (GraphLab)   20  
  • 38. ! GRASP   ! http://grasp.cs.ucr.edu ! Acknowledgements Thanks