1 of 143

Goal

Gen 0

Column

Gen 1

Gen 2

(Gen 3)

Stratum

“Fingerprint”

0x504b

Stratum

“Fingerprint”

0xddbd

retain

eliminate

Stratum

“Fingerprint”

0x3d49

New!

retain

idx

0

idx

2

idx

1

2 of 143

Goal

Gen 0

Column

Gen 1

Gen 2

(Gen 3)

Stratum

“Fingerprint”

0x504b

Stratum

“Fingerprint”

0xddbd

retain

eliminate

Stratum

“Fingerprint”

0x3d49

New!

retain

idx

0

idx

2

idx

1

task:

brainstorm large-scale experiment topics doable with simple model

3 of 143

Goal

Gen 0

Column

Gen 1

Gen 2

(Gen 3)

Stratum

“Fingerprint”

0x504b

Stratum

“Fingerprint”

0xddbd

retain

eliminate

Stratum

“Fingerprint”

0x3d49

New!

retain

idx

0

idx

2

idx

1

4 of 143

Goal

Gen 0

Column

Gen 1

Gen 2

(Gen 3)

Stratum

“Fingerprint”

0x504b

Stratum

“Fingerprint”

0xddbd

retain

eliminate

Stratum

“Fingerprint”

0x3d49

New!

retain

idx

0

idx

2

idx

1

19 kb memory

5 of 143

Loose upper bound

Gen 0

Column

Gen 1

Gen 2

(Gen 3)

Stratum

“Fingerprint”

0x504b

Stratum

“Fingerprint”

0xddbd

Stratum

“Fingerprint”

0x3d49

New!

idx

0

idx

2

idx

1

6 of 143

retained@t

retained@t+1

What to get rid of at time t?

... set subtraction

Gen 0

Column

Gen 1

Gen 2

(Gen 3)

Stratum

“Fingerprint”

0x504b

Stratum

“Fingerprint”

0xddbd

Stratum

“Fingerprint”

0x3d49

New!

idx

0

idx

2

idx

1

7 of 143

Goal

Gen 0

Column

Gen 1

Gen 2

(Gen 3)

Stratum

“Fingerprint”

0x504b

Stratum

“Fingerprint”

0xddbd

retain

eliminate

Stratum

“Fingerprint”

0x3d49

New!

retain

idx

0

idx

2

idx

1

19 kb memory

8 of 143

Goal

Gen 0

Column

Gen 1

Gen 2

(Gen 3)

Stratum

“Fingerprint”

0x504b

Stratum

“Fingerprint”

0xddbd

retain

eliminate

Stratum

“Fingerprint”

0x3d49

New!

retain

idx

0

idx

2

idx

1

19 kb memory

🐘

Simplify and Optimize for “in practice”

📌‏ ‎

9 of 143

Goal

Gen 0

Column

Gen 1

Gen 2

(Gen 3)

Stratum

“Fingerprint”

0x504b

Stratum

“Fingerprint”

0xddbd

retain

eliminate

Stratum

“Fingerprint”

0x3d49

New!

retain

idx

0

idx

2

idx

1

19 kb memory

🐘

Simplify and Optimize for “in practice”

📌‏ ‎

10 of 143

Goal

Gen 0

Column

Gen 1

Gen 2

(Gen 3)

Stratum

“Fingerprint”

0x504b

Stratum

“Fingerprint”

0xddbd

retain

eliminate

Stratum

“Fingerprint”

0x3d49

New!

retain

idx

0

idx

2

idx

1

19 kb memory

🐁 💪

🐘

Simplify and Optimize for “in practice”

📌‏ ‎

11 of 143

Goal

Gen 0

Column

Gen 1

Gen 2

(Gen 3)

Stratum

“Fingerprint”

0x504b

Stratum

“Fingerprint”

0xddbd

retain

eliminate

Stratum

“Fingerprint”

0x3d49

New!

retain

idx

0

idx

2

idx

1

19 kb memory

🐁 💪

🐘

Simplify and Optimize for “in practice”

📌‏ ‎

?

12 of 143

Design Requirements

  • Memory efficiency
    • why? WSE has 19kb per core and messages are sent in 32 bit packets
    • constant-size annotation
    • make full use of allotted memory
    • stateless algorithms (i.e., reversible)
  • Simple* implementation
    • minimize data structures: ideally, just an array and a counter
    • no malloc
    • avoid floating point computation due to low precision
    • *is what follows really simple???
  • Execution efficiency
    • likely working with simple models: instrumentation overhead therefore relatively large
    • O(1) operation
    • avoid slow operations (e.g., division, logarithms, etc.)
    • ideally, flip at most one bit per generation

13 of 143

0

1

0

0

1

1

0

1

gen

987

&

14 of 143

gen

988

⬆️

0

1

0

0

1

1

0

1

1

2

3

4

5

6

7

0

1

0

0

1

1

0

1

gen

987

0

&

&

🎲

15 of 143

gen

988

⬆️

0

1

0

0

1

1

0

1

1

2

3

4

5

6

7

0

1

0

1

1

1

0

1

gen

987

0

&

&

🎲

Column

Stratum

“Fingerprint”

0x504b

Stratum

“Fingerprint”

0x3d49

Stratum

“Fingerprint”

0xd01a

New!

(eliminated)

16 of 143

gen

988

⬆️

0

1

0

0

1

1

0

1

1

2

3

4

5

6

7

0

1

0

1

1

1

0

1

gen

987

0

&

&

🎲

Column

Stratum

“Fingerprint”

0x504b

Stratum

“Fingerprint”

0x3d49

Stratum

“Fingerprint”

0xd01a

New!

(eliminated)

&

17 of 143

gen

988

⬆️

0

1

0

0

1

1

0

1

1

2

3

4

5

6

7

0

1

0

1

1

1

0

1

gen

987

0

&

&

🎲

Column

Stratum

“Fingerprint”

0x504b

Stratum

“Fingerprint”

0x3d49

Stratum

“Fingerprint”

0xd01a

New!

(eliminated)

&

18 of 143

gen

988

⬆️

0

1

0

0

1

1

0

1

1

2

3

4

5

6

7

0

1

0

1

1

1

0

1

gen

987

0

&

&

🎲

Column

Stratum

“Fingerprint”

0x504b

Stratum

“Fingerprint”

0x3d49

Stratum

“Fingerprint”

0xd01a

New!

(eliminated)

&

Misc

  • one generation <= 1 bit diff
  • If two have same stratum, it’s at the same site
  • Half of the time do nothing 😎

19 of 143

gen

988

⬆️

0

1

0

0

1

1

0

1

1

2

3

4

5

6

7

0

1

0

1

1

1

0

1

gen

987

0

&

&

🎲

20 of 143

time t

time t+1

gen

988

⬆️

0

1

0

0

1

1

0

1

1

2

3

4

5

6

7

0

1

0

1

1

1

0

1

gen

987

0

&

&

🎲

21 of 143

time t

time t+1

⚙️

gen

988

⬆️

0

1

0

0

1

1

0

1

1

2

3

4

5

6

7

0

1

0

1

1

1

0

1

gen

987

0

&

&

🎲

forward

22 of 143

⚙️

0

1

0

1

1

1

0

1

gen

X

🎲

&

&

🎲

&

🎲

&

🎲

&

🎲

1

0

0

1

1

1

0

1

gen

Y

&

0

1

2

4

5

6

7

3

gen X

backward

23 of 143

⚙️⚙️⚙️

0

1

0

1

1

1

0

1

time

X

&

&

🎲

&

🎲

&

🎲

&

🎲

1

0

0

1

1

1

0

1

time

Y

&

0

1

2

4

5

6

7

3

gen X

constant

🎲

fixed-width buffer

T

I

M

E

24 of 143

⚙️⚙️⚙️

0

1

0

1

1

1

0

1

time

X

&

&

🎲

&

🎲

&

🎲

&

🎲

1

0

0

1

1

1

0

1

time

Y

&

0

1

2

4

5

6

7

3

gen X

constant

🎲

fixed-width buffer

T

I

M

E

25 of 143

0

1

0

1

1

1

0

1

time

X

🎲

🎲

🎲

🎲

1

0

0

1

1

1

0

1

time

Y

0

1

2

4

5

6

7

idx

3

time X

calc

orig

time

..

🎲

fixed-width buffer

T

I

M

E

26 of 143

time

X

🎲

🎲

🎲

🎲

time

Y

0

1

2

4

5

1

6

7

idx

3

time X

1

calc

orig

time

..

🎲

fixed-width buffer

T

I

M

E

0

1

0

1

1

0

1

1

0

0

1

1

0

1

27 of 143

time

X

time

Y

0

0

1

2

4

5

1

6

7

idx

3

time X

1

calc

orig

time

..

fixed-width buffer

T

I

M

E

0

1

1

1

0

1

1

0

0

1

1

0

1

28 of 143

?

29 of 143

Steady vs. Tilted

Steady

Tilted

🚩 🚩 🚩 🚩 🚩 🚩 🚩 🚩 🚩

🚩 🚩 🚩 🚩 🚩 🚩 🚩🚩

🆕…

🆕…

📍

📍

🕐 🕑 🕒 🕓 🕔 🕕 🕖 🕗 🕘 🕙 🕚 🕛

🕐 🕑 🕒 🕓 🕔 🕕 🕖 🕗 🕘 🕙 🕚 🕛

30 of 143

Steady vs. Tilted

🍋

🍊

🍁

🍇

🍀

🥜

🌼

🌻

🥕

🌵

🌾

🌽

31 of 143

Steady vs. Tilted

🍋

🍊

🍁

🍇

🍀

🥜

🌼

🌻

🥕

🌵

🌾

🌽

32 of 143

Steady vs. Tilted

🍋

🍊

🍁

🍇

🍀

🥜

🌼

🌻

🥕

🌵

🌾

🌽

33 of 143

Steady vs. Tilted

🍋

🍊

🍁

🍇

🍀

🥜

🌼

🌻

🥕

🌵

🌾

🌽

34 of 143

Tilted

35 of 143

36 of 143

By Trixx - I designed this using http://thewalnut.io/, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=43282866

37 of 143

38 of 143

39 of 143

⚙️

(n & -n).bit_length() - 1

40 of 143

⚙️

(n & -n).bit_length() - 1

41 of 143

Hanoi value 0

Hanoi value 1

Hanoi value 2

Hanoi value 3

Time 0

x

Time 1

x

Time 2

x

Time 3

x

Time 4

x

Time 5

x

Time 6

x

42 of 143

1

-

-

-

-

-

-

0

-

-

-

-

-

-

-

0

1

-

-

-

0

-

-

1

1

-

-

-

-

-

-

1

0

-

-

-

-

-

-

1

1

-

-

-

0

-

-

1

Hanoi value 0

Hanoi value 1

Hanoi value 2

Hanoi value 3

Hanoi value 4

Hanoi value 5

Hanoi value 6

Hanoi value 7

🎲

🎲

🎲

🎲

🎲

🎲

43 of 143

1

-

-

-

-

-

-

0

-

-

-

-

-

-

-

0

1

-

-

-

0

-

-

1

1

-

-

-

-

-

-

1

0

-

-

-

-

-

-

1

1

-

-

-

0

-

-

1

Hanoi value 0

Hanoi value 1

Hanoi value 2

Hanoi value 3

Hanoi value 4

Hanoi value 5

Hanoi value 6

Hanoi value 7

🎲

🎲

🎲

🎲

🎲

🎲

-

-

-

-

-

-

44 of 143

-

-

-

-

-, -

-, -

0

-

-

-

0, 1

-, -

0, -

-, -

0, 1

-, -

0, -, -, -

0, 1, 2, -

0, -, -, -

0, 1, 2, -

+0

+1

+0

+2

+0

45 of 143

4

5

6

7

2

3

1

0

0

2

1

3

0

1

0

46 of 143

-, -

-

-

-

-

-, -

-, -

0

-

-

-

0, 1

-, -

-, -

0, 1

0, -

0, -, -, -

0, 1, 2, -

+0

+1

+0

+2

+0

0, -, -, -

0, 1, 2, -

47 of 143

-, -

-

-

-

-

-, -

-, -

0

-

-

-

0, 1

-, -

-, -

0, 1

0, -

0, -, -, -(1)

0, 1, 2, -(1)

+0

+1

+0

+2

+0

0, -, -, -(1)

0, 1, 2, -(1)

48 of 143

15

8

12

11

0

7

3

4

14

9

10

1

6

13

2

5

descending

49 of 143

15

8

12

11

0

7

3

4

14

9

10

1

6

13

2

5

descending

Index -> gray coding -> bit twiddling -> position

50 of 143

15

8

12

11

0

7

3

4

14

9

10

1

6

13

2

5

descending

Index -> gray coding -> bit twiddling -> position

Hadamard sequence ?????

51 of 143

15

8

12

11

0

7

3

4

14

9

10

1

6

5

13

2

descending

52 of 143

15

8

12

11

0

7

3

4

14

9

13

10

1

6

2

5

8

12

11

7

3

4

14

0

9

10

1

6

5

13

2

descending

53 of 143

15

8

12

11

0

7

3

4

14

9

13

10

1

6

2

5

8

12

11

7

3

4

14

0

9

10

1

6

5

8

12

11

0

7

3

4

9

10

6

5

1

13

2

13

2

descending

54 of 143

15

8

12

11

0

7

3

4

8

12

11

0

7

3

4

14

9

13

10

1

6

2

5

9

10

6

5

2

8

12

11

7

3

4

14

0

9

10

1

6

5

8

12

11

0

7

3

4

9

10

6

5

1

1

13

2

13

2

descending

55 of 143

15

8

12

11

0

7

3

4

8

12

11

0

7

3

4

8

0

7

3

14

9

13

10

1

6

2

5

9

10

6

5

2

9

1

6

2

11

4

8

12

11

7

3

4

14

0

9

10

1

6

5

8

12

11

0

7

3

4

9

10

6

5

1

1

13

2

13

2

10

5

descending

56 of 143

15

8

12

11

0

7

3

4

8

12

11

0

7

3

4

8

0

7

3

4

8

0

7

3

14

9

13

10

1

6

2

5

9

10

6

5

9

1

6

2

2

9

10

1

6

2

5

8

0

7

3

4

1

6

2

5

8

11

0

7

3

4

9

1

6

2

5

8

12

11

7

3

4

14

0

9

10

1

6

5

8

12

11

0

7

3

4

9

10

6

5

1

1

13

2

13

2

10

5

4

descending

57 of 143

6

15

8

12

11

0

7

3

4

8

12

11

0

7

3

4

8

0

7

3

4

7

3

4

0

8

0

7

3

14

9

13

10

1

6

2

5

9

10

6

5

9

1

6

2

2

2

5

1

9

10

1

6

2

5

8

0

7

3

4

1

6

2

5

8

11

0

7

3

4

9

1

6

2

5

8

12

11

7

3

4

14

0

9

10

1

6

5

8

12

11

0

7

3

4

9

10

6

5

1

1

13

2

13

2

10

5

4

descending

58 of 143

6

15

8

12

11

0

7

3

4

8

12

11

0

7

3

4

8

0

7

3

4

7

3

4

0

8

0

7

3

14

9

13

10

1

6

2

5

9

10

6

5

9

1

6

2

2

2

5

1

9

10

1

6

2

5

3

4

0

6

2

5

8

0

7

3

4

1

6

2

5

8

11

0

7

3

4

9

1

6

2

5

1

8

12

11

7

3

4

14

0

9

10

1

6

5

8

12

11

0

7

3

4

9

10

6

5

1

1

13

2

13

2

10

5

4

descending

59 of 143

6

15

8

12

11

0

7

3

4

8

12

11

0

7

3

4

8

0

7

3

4

7

3

4

0

8

0

7

3

14

9

13

10

1

6

2

5

9

10

6

5

9

1

6

2

2

2

5

1

9

10

1

6

2

5

3

4

0

6

2

5

8

0

7

3

4

1

6

2

5

8

11

0

7

3

4

9

1

6

2

5

1

8

12

11

7

3

4

14

0

9

10

1

6

5

8

12

11

0

7

3

4

9

10

6

5

1

1

13

2

13

2

10

5

4

descending

60 of 143

6

15

8

12

11

0

7

3

4

8

12

11

0

7

3

4

8

0

7

3

4

7

3

4

0

3

4

0

0

8

0

7

3

14

9

13

10

1

6

2

5

9

10

6

5

9

1

6

2

2

2

5

1

5

1

2

1

9

10

1

6

2

5

0

0

2

1

4

0

3

1

3

4

0

6

2

5

8

0

7

3

4

1

6

2

5

3

0

2

2

8

11

0

7

3

4

9

1

6

2

5

1

1

8

12

11

7

3

4

14

0

9

10

1

6

5

8

12

11

0

7

3

4

9

10

6

5

1

1

13

2

13

2

10

5

4

descending

61 of 143

5

4

6

0

3

1

7

2

62 of 143

5

4

6

0

3

1

7

2

Hanoi 0

Hanoi 1

Hanoi 2

Hanoi 3

63 of 143

5

4

6

0

3

1

7

2

Hanoi 0

h0’

h0’’’

h0’’

Hanoi 1

h1’

h1’’

Hanoi 2

h2’

Hanoi 3

64 of 143

D

E

F

5

4

6

0

3

1

7

B

A

2

C

H

G

65 of 143

D

E

F

5

4

6

0

3

1

7

B

A

2

C

H

G

66 of 143

D

E

F

B

A

C

H

G

5

4

6

0

3

7

2

1

67 of 143

D

E

F

B

A

C

H

G

5

4

6

0

3

1

7

2

68 of 143

D

E

F

B

A

C

H

G

5

4

6

0

3

1

7

2

69 of 143

D

E

F

B

A

C

H

G

5

4

6

0

3

1

7

2

70 of 143

A

B

C

D

E

F

G

H

NEW

5

4

2

6

0

3

1

7

71 of 143

A

B

C

D

E

F

G

H

NEW

A

B

C

D

E

F

G

H

NEW

OLDER

5

4

2

6

0

3

1

7

72 of 143

A

B

C

D

E

F

G

H

NEW

A

B

C

D

E

F

G

H

NEW

OLDER

OLDEST

A

B

C

D

E

F

G

H

NEW

OLDER

5

4

2

6

0

3

1

7

73 of 143

A

B

C

D

E

F

G

H

“incrementing”

4

5

6

7

2

3

0

2

1

3

0

1

74 of 143

A

B

C

D

E

F

G

H

C

B

A

D

H

E

F

G

“incrementing”

4

5

6

7

2

3

0

2

1

3

0

1

75 of 143

A

B

C

D

E

F

G

H

C

B

A

D

H

E

F

G

76 of 143

A

B

C

D

E

F

G

H

C

B

A

D

H

E

F

G

NEW

OLDER

OLDEST

77 of 143

A

B

C

D

E

F

G

H

C

B

A

D

H

E

F

G

NEW

OLDER

OLDEST

78 of 143

A

B

C

D

E

F

G

H

C

B

A

D

H

E

F

G

NEW

OLDER

OLDEST

NEW

OLDER

OLDEST

79 of 143

👍

A

B

C

D

E

F

G

H

C

B

A

D

H

E

F

G

NEW

OLDER

OLDEST

NEW

OLDER

OLDEST

80 of 143

👎

👍

A

B

C

D

E

F

G

H

C

B

A

D

H

E

F

G

A

B

C

D

E

F

G

H

NEW

OLDER

OLDEST

NEW

OLDER

OLDEST

NEW

OLDER

OLDEST

81 of 143

👎

👍

A

B

C

D

E

F

G

H

C

B

A

D

H

E

F

G

A

B

C

D

E

F

G

H

C

B

A

D

H

E

F

G

NEW

OLDER

OLDEST

NEW

OLDER

OLDEST

NEW

OLDER

OLDEST

OLDEST

OLDER

NEW

82 of 143

A

B

C

D

E

F

G

H

A

C

D

E

F

G

“Fractionally incrementing”

B

H

83 of 143

A

B

C

D

E

F

G

H

A

C

D

E

F

G

“Fractionally incrementing”

NEW

OLDER

OLDEST

NEW

OLDEST

OLDER

B

H

84 of 143

A

B

C

D

E

F

G

H

A

B

C

D

E

F

G

H

“Fractionally incrementing”

NEW

OLDER

OLDEST

NEW

OLDEST

OLDER

85 of 143

Modular arithmetic

86 of 143

Sloppy base 2 lowest common multiple…

Modular arithmetic

87 of 143

88 of 143

89 of 143

90 of 143

91 of 143

92 of 143

64-bit surface

16-bit surface

93 of 143

segment 2

segment 3

segment 1

segment 0

h.v.

h

h.v.

h

h.v.

h

h.v.

h

h.v.

h

memory

buffer

time

h.v.

h

h.v.

h

h.v.

h

94 of 143

Epoch 0:

memory

buffer

segment 0

seg. 3

seg. 4

seg. 1

segment 0

segment 1

time

h.v.

0

h.v.

0

h.v.

0

h.v.

0

h.v.

0

h.v.

0

h.v.

0

h.v.

0

h.v.

0

h.v.

0

h.v.

0

h.v.

0

h.v.

0

h.v.

epoch 0

epoch 1

Epoch 1:

95 of 143

epoch 2

Epoch 0:

memory

buffer

segment 0

seg. 3

seg. 4

seg. 1

segment 0

segment 1

time

h.v.

0

h.v.

0

h.v.

0

h.v.

0

bunch

0

epoch 1

Epoch 1:

bunch

1

bunch

2

h.v.

3

h.v.

2

h.v.

4

epoch 0

96 of 143

epoch 2

Epoch 0:

memory

buffer

segment 0

seg. 2

seg. 3

seg. 1

segment 0

segment 1

time

h.v.

0

h.v.

0

h.v.

0

h.v.

0

bunch

0

epoch 1

Epoch 1:

bunch

1

bunch

2

h.v.

4

h.v.

2

h.v.

5

epoch 0

97 of 143

Epoch 0:

memory

buffer

segment 0

seg. 2

seg. 3

seg. 1

segment 0

segment 1

time

h.v.

0

h.v.

0

h.v.

0

h.v.

0

bunch

0

epoch 1

Epoch 1:

bunch

1

bunch

2

h.v.

4

h.v.

2

epoch 0

98 of 143

Epoch 0:

memory

buffer

segment 0

seg. 2

seg. 3

seg. 1

segment 0

segment 1

time

h.v.

0

h.v.

0

h.v.

0

h.v.

0

bunch

0

epoch 1

Epoch 1:

bunch

1

bunch

2

h.v.

4

h.v.

2

epoch 0

h.v.

0

h.v.

h.v.

0

h.v.

0

99 of 143

Epoch 0:

memory

buffer

segment 0

seg. 3

seg. 4

seg. 1

segment 0

segment 1

time

h.v.

0

h.v.

0

h.v.

0

h.v.

0

bunch

0

epoch 1

Epoch 1:

bunch

1

bunch

2

h.v.

3

h.v.

2

epoch 0

h.v.

0

h.v.

0

h.v.

0

h.v.

0

100 of 143

Epoch 0:

memory

buffer

segment 0

seg. 2

seg. 3

seg. 1

segment 0

segment 1

time

h.v.

0

h.v.

0

h.v.

0

h.v.

0

bunch

0

epoch 1

Epoch 1:

bunch

1

bunch

2

h.v.

4

h.v.

2

epoch 0

h.v.

0

h.v.

0

h.v.

0

h.v.

0

101 of 143

Epoch 0:

memory

buffer

segment 0

seg. 2

seg. 3

seg. 1

segment 0

segment 1

time

h.v.

0

h.v.

0

h.v.

0

h.v.

0

bunch

0

epoch 1

Epoch 1:

bunch

1

bunch

2

h.v.

4

h.v.

2

epoch 0

h.v.

0

h.v.

0

h.v.

0

h.v.

0

102 of 143

Epoch 0:

memory

buffer

segment 0

seg. 2

seg. 3

seg. 1

segment 0

segment 1

time

h.v.

0

h.v.

0

h.v.

0

h.v.

0

bunch

r = 4

epoch 1

Epoch 1:

bunch

r = 2

bunch

r = 1

h.v.

4

h.v.

2

epoch 0

103 of 143

Epoch 0:

memory

buffer

segment 0

seg. 2

seg. 3

seg. 1

segment 0

segment 1

time

h.v.

0

h.v.

0

bunch

r = 4

bunch

r = 2

bunch

r = 1

h.v.

0

h.v.

0

epoch 1

Epoch 1:

h.v.

4

h.v.

2

epoch 0

h.v.

0

h.v.

h.v.

0

h.v.

0

104 of 143

Next Steps

  • Write notes & make graphics (mostly done)
  • Finish reverse mapping for more sophisticated algorithm
  • Put it on a shelf for later
  • How to distill/streamline a zoo of highly-redundant functions into a single procedure/expression?
    • Sympy? (i.e., computer algebra)
    • Throw it through an optimizing compiler and parse the assembly/IR?
    • By hand?
  • What to do when rank capacity is exceeded?
  • Add to hstrat library (Python/C++ & CerebrasLang)
  • Write a paper etc.

105 of 143

Steady

106 of 143

107 of 143

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

X

a

b

b

c

d

a

c

a

b

a

b

a

a

a

a

bin 3 (2:1)

bin 2 (2:0)

segment 2

bin 0 (0:0)

segment 0

bin 1 (1:0)

segment 1

bin 4 (3:0)

segment 3

bin 5 (3:1)

bin 6 (3:2)

bin 7 (3:3)

t

⏱️

0

1

3

7

15

31

63

bin size incrementing

bin count doubling

+1

+1

+1

×2

×2

s1

s0

s2

s6

s3

s4

s5

s7

s8

s9

s10

s11

s12

s13

s14

s15

… … … … … … … … … … … … … … … … …

108 of 143

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

X

a

b

b

c

d

a

c

a

b

a

b

a

a

a

a

bin 3 (2:1)

bin 2 (2:0)

segment 2

bin 0 (0:0)

segment 0

bin 1 (1:0)

segment 1

bin 4 (3:0)

segment 3

bin 5 (3:1)

bin 6 (3:2)

bin 7 (3:3)

r0h0

t

⏱️

0

1

3

7

15

31

63

bin size incrementing

bin count doubling

+1

+1

+1

×2

×2

s1

s0

s2

s6

s3

s4

s5

s7

s8

s9

s10

s11

s12

s13

s14

s15

… … … … … … … … … … … … … … … … …

109 of 143

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

X

a

b

b

c

d

a

c

a

b

a

b

a

a

a

a

bin 3 (2:1)

bin 2 (2:0)

segment 2

bin 0 (0:0)

segment 0

bin 1 (1:0)

segment 1

bin 4 (3:0)

segment 3

bin 5 (3:1)

bin 6 (3:2)

bin 7 (3:3)

r0h0

r1h1

t

⏱️

0

1

3

7

15

31

63

bin size incrementing

bin count doubling

+1

+1

+1

×2

×2

s1

s0

s2

s6

s3

s4

s5

s7

s8

s9

s10

s11

s12

s13

s14

s15

… … … … … … … … … … … … … … … … …

110 of 143

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

X

a

b

b

c

d

a

c

a

b

a

b

a

a

a

a

bin 3 (2:1)

bin 2 (2:0)

segment 2

bin 0 (0:0)

segment 0

bin 1 (1:0)

segment 1

bin 4 (3:0)

segment 3

bin 5 (3:1)

bin 6 (3:2)

bin 7 (3:3)

r0h0

r1h1

r2h0

t

⏱️

0

1

3

7

15

31

63

bin size incrementing

bin count doubling

+1

+1

+1

×2

×2

s1

s0

s2

s6

s3

s4

s5

s7

s8

s9

s10

s11

s12

s13

s14

s15

… … … … … … … … … … … … … … … … …

111 of 143

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

X

a

b

b

c

d

a

c

a

b

a

b

a

a

a

a

bin 3 (2:1)

bin 2 (2:0)

segment 2

bin 0 (0:0)

segment 0

bin 1 (1:0)

segment 1

bin 4 (3:0)

segment 3

bin 5 (3:1)

bin 6 (3:2)

bin 7 (3:3)

r0h0

r1h1

r3h2

r2h0

t

⏱️

0

1

3

7

15

31

63

bin size incrementing

bin count doubling

+1

+1

+1

×2

×2

s1

s0

s2

s6

s3

s4

s5

s7

s8

s9

s10

s11

s12

s13

s14

s15

… … … … … … … … … … … … … … … … …

112 of 143

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

X

a

b

b

c

d

a

c

a

b

a

b

a

a

a

a

bin 3 (2:1)

bin 2 (2:0)

segment 2

bin 0 (0:0)

segment 0

bin 1 (1:0)

segment 1

bin 4 (3:0)

segment 3

bin 5 (3:1)

bin 6 (3:2)

bin 7 (3:3)

r0h0

r1h1

r3h2

r2h0

r4h0

t

⏱️

0

1

3

7

15

31

63

bin size incrementing

bin count doubling

+1

+1

+1

×2

×2

s1

s0

s2

s6

s3

s4

s5

s7

s8

s9

s10

s11

s12

s13

s14

s15

… … … … … … … … … … … … … … … … …

113 of 143

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

X

a

b

b

c

d

a

c

a

b

a

b

a

a

a

a

bin 3 (2:1)

bin 2 (2:0)

segment 2

bin 0 (0:0)

segment 0

bin 1 (1:0)

segment 1

bin 4 (3:0)

segment 3

bin 5 (3:1)

bin 6 (3:2)

bin 7 (3:3)

r0h0

r1h1

r3h2

r2h0

r4h0

t

⏱️

0

1

3

7

15

31

63

bin size incrementing

bin count doubling

+1

+1

+1

×2

×2

s1

s0

s2

s6

s3

s4

s5

s7

s8

s9

s10

s11

s12

s13

s14

s15

… … … … … … … … … … … … … … … … …

r5h1

114 of 143

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

X

a

b

b

c

d

a

c

a

b

a

b

a

a

a

a

bin 3 (2:1)

bin 2 (2:0)

segment 2

bin 0 (0:0)

segment 0

bin 1 (1:0)

segment 1

bin 4 (3:0)

segment 3

bin 5 (3:1)

bin 6 (3:2)

bin 7 (3:3)

r0h0

r1h1

r3h2

r2h0

r4h0

t

⏱️

0

1

3

7

15

31

63

bin size incrementing

bin count doubling

+1

+1

+1

×2

×2

s1

s0

s2

s6

s3

s4

s5

s7

s8

s9

s10

s11

s12

s13

s14

s15

… … … … … … … … … … … … … … … … …

r5h1

r6h0

115 of 143

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

X

a

b

b

c

d

a

c

a

b

a

b

a

a

a

a

bin 3 (2:1)

bin 2 (2:0)

segment 2

bin 0 (0:0)

segment 0

bin 1 (1:0)

segment 1

bin 4 (3:0)

segment 3

bin 5 (3:1)

bin 6 (3:2)

bin 7 (3:3)

r0h0

r1h1

r3h2

r2h0

r4h0

t

⏱️

0

1

3

7

15

31

63

bin size incrementing

bin count doubling

+1

+1

+1

×2

×2

s1

s0

s2

s6

s3

s4

s5

s7

s8

s9

s10

s11

s12

s13

s14

s15

… … … … … … … … … … … … … … … … …

r5h1

r6h0

r7h3

116 of 143

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

X

a

b

b

c

d

a

c

a

b

a

b

a

a

a

a

bin 3 (2:1)

bin 2 (2:0)

segment 2

bin 0 (0:0)

segment 0

bin 1 (1:0)

segment 1

bin 4 (3:0)

segment 3

bin 5 (3:1)

bin 6 (3:2)

bin 7 (3:3)

r0h0

r1h1

r3h2

r7h3

r2h0

r5h1

r11h2

r4h0

r9h1

r6h0

r13h1

r8h0

r10h0

r12h0

r14h0

t

⏱️

0

1

3

7

15

31

63

bin size incrementing

bin count doubling

+1

+1

+1

×2

×2

s1

s0

s2

s6

s3

s4

s5

s7

s8

s9

s10

s11

s12

s13

s14

s15

… … … … … … … … … … … … … … … … …

117 of 143

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

X

a

b

b

c

d

a

c

a

b

a

b

a

a

a

a

bin 3 (2:1)

bin 2 (2:0)

segment 2

bin 0 (0:0)

segment 0

bin 1 (1:0)

segment 1

bin 4 (3:0)

segment 3

bin 5 (3:1)

bin 6 (3:2)

bin 7 (3:3)

r0h0

r1h1

r3h2

r7h3

r2h0

r5h1

r11h2

r4h0

r9h1

r6h0

r13h1

r8h0

r10h0

r12h0

r14h0

r15h4

t

⏱️

0

1

3

7

15

31

63

bin size incrementing

bin count doubling

+1

+1

+1

×2

×2

s1

s0

s2

s6

s3

s4

s5

s7

s8

s9

s10

s11

s12

s13

s14

s15

… … … … … … … … … … … … … … … … …

118 of 143

r21h1

r25h0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

X

a

b

b

c

d

a

c

a

b

a

b

a

a

a

a

bin 3 (2:1)

bin 2 (2:0)

segment 2

bin 0 (0:0)

segment 0

bin 1 (1:0)

segment 1

bin 4 (3:0)

segment 3

bin 5 (3:1)

bin 6 (3:2)

bin 7 (3:3)

r0h0

r1h1

r3h2

r7h3

r2h0

r5h1

r11h2

r4h0

r9h1

r6h0

r13h1

r8h0

r10h0

r12h0

r14h0

r15h4

r19h2

r23h3

t

⏱️

0

1

3

7

15

31

63

bin size incrementing

bin count doubling

+1

+1

+1

×2

×2

s1

s0

s2

s6

s3

s4

s5

s7

s8

s9

s10

s11

s12

s13

s14

s15

r27h2

r17h1

r29h0

… … … … … … … … … … … … … … … … …

119 of 143

r21h1

r25h0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

X

a

b

b

c

d

a

c

a

b

a

b

a

a

a

a

bin 3 (2:1)

bin 2 (2:0)

segment 2

bin 0 (0:0)

segment 0

bin 1 (1:0)

segment 1

bin 4 (3:0)

segment 3

bin 5 (3:1)

bin 6 (3:2)

bin 7 (3:3)

r0h0

r1h1

r3h2

r7h3

r2h0

r5h1

r11h2

r4h0

r9h1

r6h0

r13h1

r8h0

r10h0

r12h0

r14h0

r15h4

r19h2

r23h3

r31h5

r47h4

r23h3

r17h2

r21h2

r25h2

r23h3

r29h2

t

⏱️

0

1

3

7

15

31

63

bin size incrementing

bin count doubling

+1

+1

+1

×2

×2

s1

s0

s2

s6

s3

s4

s5

s7

s8

s9

s10

s11

s12

s13

s14

s15

r27h2

r17h1

r29h0

… … … … … … … … … … … … … … … … …

120 of 143

r21h1

r25h0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

r0

X

a

b

b

c

d

a

c

a

b

a

b

a

a

a

a

bin 3 (2:1)

bin 2 (2:0)

segment 2

bin 0 (0:0)

segment 0

bin 1 (1:0)

segment 1

bin 4 (3:0)

segment 3

bin 5 (3:1)

bin 6 (3:2)

bin 7 (3:3)

r0h0

r1h1

r3h2

r7h3

r2h0

r5h1

r11h2

r4h0

r9h1

r6h0

r13h1

r8h0

r10h0

r12h0

r14h0

r15h4

r19h2

r23h3

r31h5

r47h4

r23h3

r17h2

r21h2

r25h2

r23h3

r29h2

t

⏱️

0

1

3

7

15

31

63

bin size incrementing

bin count doubling

+1

+1

+1

×2

×2

s1

s0

s2

s6

s3

s4

s5

s7

s8

s9

s10

s11

s12

s13

s14

s15

r27h2

r17h1

r29h0

… … … … … … … … … … … … … … … … …

121 of 143

a

b

b

c

d

a

c

a

b

a

b

a

a

a

a

bin 3 (2:1)

bin 2 (2:0)

segment 2

bin 0 (0:0)

segment 0

bin 1 (1:0)

segment 1

bin 4 (3:0)

segment 3

bin 5 (3:1)

bin 6 (3:2)

bin 7 (3:3)

s1

s2

s6

s3

s4

s5

s7

s8

s9

s10

s11

s12

s13

s14

s15

🌊🌊🌊🌊

🌊

🌊

🌊🌊🌊

🌊

🌊🌊

🌊🌊

🌊

Hanoi

Value

x

122 of 143

t = h

t = h-1

t = h+1

segment 2

segment 3

t = h-3

segment 1

segment 0

t = h-2

h.v.

h

h.v.

h

h.v.

h

h.v.

h

h.v.

h

memory

buffer

epoch

h.v.

h

h.v.

h

h.v.

h

123 of 143

t = h

t = h-1

t = h+1

bunch 2

bunch 3

t = h-3

bunch 1

bunch 0

t = h-2

h.v.

h

h.v.

h

h.v.

h

h.v.

h

h.v.

h

memory

buffer

epoch

h.v.

h

h.v.

h

h.v.

h

124 of 143

t = h

t = h-1

bunch 2

bunch 3

t = h-3

bunch 1

bunch 0

t = h-2

memory

buffer

epoch t

<——- seg 0 -——>

<———— seg 0 ————>

<– seg 0 –>

seg 0

seg 1

seg 2

seg 3

<– seg 1 –>

h.v. h+1

h.v. h+1

h.v. h+1

h.v. h+1

t = h+1

h.v.

h+4

h.v.

h+2

h.v. h

h.v. h

h.v. h

h.v. h

h.v.

h+2

h.v.

h+3

h.v.

h

h.v.

h

h.v.

h

h.v.

h

125 of 143

t = h

t = h-1

bunch 2

bunch 3

t = h-3

bunch 1

bunch 0

t = h-2

memory

buffer

epoch t

<——- seg 0 -——>

<———— seg 0 ————>

<– seg 0 –>

seg 0

seg 1

seg 2

seg 3

<– seg 1 –>

h.v. h+1

h.v. h+1

h.v. h+1

h.v. h+1

h.v.

h+4

h.v.

h+2

h.v. h

h.v. h

h.v. h

h.v. h

h.v.

h+2

h.v.

h+3

h.v.

h

h.v.

h

h.v.

h

h.v.

h

126 of 143

t = h

t = h-1

bunch 2

bunch 3

t = h-3

bunch 1

bunch 0

t = h-2

memory

buffer

epoch t

<——- seg 0 -——>

<———— seg 0 ————>

<– seg 0 –>

seg 0

seg 1

seg 2

seg 3

<– seg 1 –>

h.v. h+1

h.v. h+1

h.v. h+1

h.v. h+1

t = h+1

h.v.

h+4

h.v.

h+2

h.v. h

h.v. h

h.v. h

h.v. h

h.v.

h+2

h.v.

h+3

h.v.

h

h.v.

h

h.v.

h

h.v.

h

127 of 143

t = h

t = h-1

bunch 2

bunch 3

t = h-3

bunch 1

bunch 0

t = h-2

memory

buffer

epoch t

<——- seg 0 -——>

<———— seg 0 ————>

<– seg 0 –>

seg 0

seg 1

seg 2

seg 3

<– seg 1 –>

h.v. h+1

h.v. h+1

h.v. h+1

h.v. h+1

t = h+1

h.v.

h+4

h.v.

h+2

h.v. h

h.v. h

h.v. h

h.v. h

h.v.

h+2

h.v.

h+3

h.v.

h

h.v.

h

h.v.

h

h.v.

h

128 of 143

a

b

b

c

d

a

c

a

b

a

b

a

a

a

a

bin 3 (2:1)

bin 2 (2:0)

segment 2

bin 0 (0:0)

segment 0

bin 1 (1:0)

segment 1

bin 4 (3:0)

segment 3

bin 5 (3:1)

bin 6 (3:2)

bin 7 (3:3)

s1

s2

s6

s3

s4

s5

s7

s8

s9

s10

s11

s12

s13

s14

s15

😭

😭

😭

😭

😭

😭

😭

😭

129 of 143

Time since deposition (linear)

Time since deposition (log)

130 of 143

Time since deposition (linear)

Time since deposition (log)

131 of 143

Differentia Value (linear)

Differentia Value (log)

132 of 143

Bin Size Sequence

Highest power of 2 dividing the unique normal number whose unsorted prime signature is the k-th composition in standard order (graded reverse-lexicographic).... https://oeis.org/A065120

bin 3 (2:1)

bin 2 (2:0)

segment n-2

bin 0 (0:0)

segment 0

bin 1 (1:0)

segment 1

bin 4 (3:0)

segment n-1

bin 5 (3:1)

bin 6 (3:2)

bin 7 (3:3)

4

3

2 2

1 1 1 1

0, 1, 2, 1, 3, 2, 1, 1, 4, 3, 2, 2, 1, 1, 1, 1, 5, 4, 3, 3…

https://muppet.fandom.com/wiki/Elmo_Variants

133 of 143

Enactment: Map Bin # to Site Index

bin 3 (2:1)

bin 2 (2:0)

segment n-2

bin 0 (0:0)

segment 0

bin 1 (1:0)

segment 1

bin 4 (3:0)

segment n-1

bin 5 (3:1)

bin 6 (3:2)

bin 7 (3:3)

4

3

2 2

1 1 1 1

https://muppet.fandom.com/wiki/Elmo_Variants

(1 << n) * mbw - mbw - n * (1 << n) + (1 << (n + 1)) - 2

134 of 143

Decoding: Map Site Index to Bin Number

bin 3 (2:1)

bin 2 (2:0)

segment n-2

bin 0 (0:0)

segment 0

bin 1 (1:0)

segment 1

bin 4 (3:0)

segment n-1

bin 5 (3:1)

bin 6 (3:2)

bin 7 (3:3)

Σ

https://mathworld.wolfram.com/EulersNumberTriangle.html

digitaljournal.com, CC BY-SA 2.0 via Wikimedia Commons

Σ

10110000000

11010000000

...

11110111000

11111111111

Eulerian Numbers repeat once

1, 4, 11, 26, 57, 120…

Number of eigenvalues equal to 1 of n X n matrix A(i,j)=1 if j=1 or i divides j

# leading 1’s:

135 of 143

fin.

https://muppet.fandom.com/wiki/Elmo_Variants

136 of 143

0

1

0

1

1

1

0

0

1

2

3

4

5

6

1

7

988

0

1

0

0

1

1

0

0

1

2

3

4

5

6

1

7

987

🎲

⬆️

⚙️

137 of 143

0

1

0

1

1

1

0

0

1

2

3

4

5

6

1

7

987

0

1

0

0

1

1

0

0

1

2

3

4

5

6

1

7

987

🎲

⬆️

138 of 143

7

4

6

5

0

3

1

2

alternating

4

6

5

0

3

1

2

4

0

3

1

2

3

1

2

0

1

2

0

1

0

0

4

5

0

3

1

2

139 of 143

10

15

8

12

11

0

7

3

4

14

9

10

1

6

13

2

5

10

10

10

10

10

10

10

10

10

10

10

10

10

10

10

descending

140 of 143

5

8

10

12

0

2

4

14

10

12

0

6

2

4

14

0

6

2

4

4

2

6

0

3

7

0

0

14

0

6

9

13

11

15

1

5

3

7

13

15

5

7

13

1

5

3

2

3

1

6

1

3

1

13

15

1

5

2

0

0

3

1

7

0

3

1

2

6

0

5

3

7

14

0

6

2

4

1

5

3

2

0

2

2

14

12

0

6

2

4

1

3

7

1

1

14

10

12

6

2

4

9

0

13

15

1

5

7

14

11

12

0

6

3

4

13

15

5

7

1

1

11

3

11

3

15

7

4

5

3

7

15

6

7

7

15

Piecewise ascending

141 of 143

8

12

10

14

0

4

2

6

9

13

15

1

5

11

3

7

https://oeis.org/A030109

Piecewise ascending

142 of 143

143 of 143