Page tree
Skip to end of metadata
Go to start of metadata

Introduction

Collatz numbers follow the sequence until x(n) is 1....

    odd numbers are multiplied by 3 and increased by 1

    even numbers are divided by 2

or (with shifting)

    x(n) = initial

    if x(n) even then x(n + 1) = x(n) >> 1 else x(n + 1) = x(n) << 1 + x(n) + 1



Quickstart

Performance#FullKubernetesClusterCPUSaturation

Artifacts




Repo

jenkins

sonar

dev

prod

Jiras

Requirements

Including assumptions

R#A#Details
R1
Optimize computation using parallel processing
R2
Optimize computation by maintaining a map of previous sequences





Analysis

Map/Graph lookup for sequence truncation

The goal of computing the collatz sequence for a particular number is to iterate the sequence to 1.   Since we have previously computed sequences that we will eventually revisit when running higher numbers - we must optimize collatz sequence generation by storing previous sequences for query.  For example, the trivial sequence 8,4,2,1 is a subset of 32,16,8,4,2,1

API


Architecture

Use Cases

Design

Including implementation

Design Issues


Devops

Deployment

Testing

Security

Monitoring

Releases

Documentation

Development Log

Links


  • No labels

1 Comment


  1. ARM 64

    benchmark

    macmini110 docker % ./build.sh 

    [+] Building 85.6s (10/10) FINISHED                                                                                                                                                           

     => [internal] load build definition from DockerFile_arm                                                                                                                                 0.1s

     => => transferring dockerfile: 437B                                                                                                                                                     0.0s

     => [internal] load .dockerignore                                                                                                                                                        0.1s

     => => transferring context: 2B                                                                                                                                                          0.0s

     => [internal] load metadata for docker.io/arm64v8/openjdk:latest                                                                                                                        1.3s

     => [auth] arm64v8/openjdk:pull token for registry-1.docker.io                                                                                                                           0.0s

     => [1/4] FROM docker.io/arm64v8/openjdk@sha256:3e039585e4bd408d8e0543644e6231c436f9064f928b6ea4347313af1c865bb2                                                                        82.9s

     => => resolve docker.io/arm64v8/openjdk@sha256:3e039585e4bd408d8e0543644e6231c436f9064f928b6ea4347313af1c865bb2                                                                         0.0s

     => => sha256:3e039585e4bd408d8e0543644e6231c436f9064f928b6ea4347313af1c865bb2 462B / 462B                                                                                               0.0s

     => => sha256:41b5e4d2891710bab81d2a4534dbe3524e3d45528d9815a8a893475583b1cbee 954B / 954B                                                                                               0.0s

     => => sha256:252c9182247fa77a952ce0d76c9f0a9068649bcc2a196b8e8352e780043c5ef3 4.44kB / 4.44kB                                                                                           0.0s

     => => sha256:a1eec3e47437e3334dd709f3a36be617982ec7579fa52be305301bb95c0d4be1 41.88MB / 41.88MB                                                                                         2.0s

     => => sha256:11ec5552a84ea6485845e8e0a4d9b09b5e8f78d742440c18650d1ec9b1aacd89 14.27MB / 14.27MB                                                                                         1.3s

     => => sha256:f9f8be97c8dc92aacf1496f9d52945fd57b624dba98e8062e19d6de766d6d712 185.95MB / 185.95MB                                                                                      76.0s

     => => extracting sha256:a1eec3e47437e3334dd709f3a36be617982ec7579fa52be305301bb95c0d4be1                                                                                                3.3s

     => => extracting sha256:11ec5552a84ea6485845e8e0a4d9b09b5e8f78d742440c18650d1ec9b1aacd89                                                                                                1.0s

     => => extracting sha256:f9f8be97c8dc92aacf1496f9d52945fd57b624dba98e8062e19d6de766d6d712                                                                                                6.6s

     => [internal] load build context                                                                                                                                                        0.0s

     => => transferring context: 10.32kB                                                                                                                                                     0.0s

     => [2/4] RUN mkdir -p /opt/app/                                                                                                                                                         0.9s

     => [3/4] ADD org.obrienscience.collatz.server.ForkJoinCollatzServer*.jar /opt/app//lib/org.obrienscience.collatz.server.ForkJoinCollatzServer.jar                                       0.0s

     => [4/4] ADD startService.sh /opt/app//bin/                                                                                                                                             0.1s

     => exporting to image                                                                                                                                                                   0.1s

     => => exporting layers                                                                                                                                                                  0.1s

     => => writing image sha256:e105c37adacac91299dd97e765568646d4dd5481a333c8e487cf4c9ab9917634                                                                                             0.0s

     => => naming to docker.io/obrienlabs/collatz-se                                                                                                                                         0.0s


    Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them

    The push refers to repository [docker.io/obrienlabs/collatz-se]

    a79977b46fd5: Pushed 

    c37cc5d48679: Pushed 

    b6fb6f506035: Pushed 

    79e24aec32e5: Mounted from arm64v8/openjdk 

    afacf90f401e: Mounted from arm64v8/openjdk 

    f6c0bde932b6: Mounted from arm64v8/openjdk 

    arm: digest: sha256:1e5c975e86bcb603427c854ca1bc59ae84056b1ec96469fda512287dddac6726 size: 1576