Introduction of this project

This section describes the internal structure of the CALYPSO. And introducing the basic algorithms of the CALYPSO.

Make sure it is updated when you are developing the CALYPSO.

Basic structure

  • Main Thread(Runner)

            flowchart LR
        id1[population] -- Calydata --> id2[generator wrapper] -- Calydata --> id3[database] --> id4[workers] --> id1
        

    Main Thread (Runner)

  • Workers Thread(WorkerTreads)

            flowchart LR
        subgraph sent_task
            direction LR
            runner -- Calydata --> optimizer
            optimizer -- optcontext --> dispatcher
        end
    
        subgraph receive_task
            direction LR
            id0[dispatcher] -- optcontext --> id1[optimizer]
            id1[optimizer] -- Calydata --> population
        end
        

    Workers Thread (WorkerTreads)

  • Dispatcher

            flowchart LR
        database <-- optcontext --> resource1 & resource2 & ...
        

Main

The CALYPSO is a Python package.

calypso.x begin at calypso/cli.py:6 and it deal with command line arguments and pass them to calypso.main

        flowchart LR
    subgraph sg1[Init basic]
        direction TB
        id1[Find config file] --> id2[Read config file]
        id2[Read config file] --> id3[Seed everything]
        id3[Seed everything]  --> id4[Pick up set]
    end
    
    subgraph sg2[Init instance]
        direction LR
        id5[CalyDatabase] 
        id6[Population] 
        id7[Descriptor] 
        id8[Gbest]
        id9[Pbest]
        id10[Fitness]
        id11[Evolution]
        id12[Generator]
        id13[Optimizer]
        id14[GeneratorWrapper]
        Dispatcher
        Runner
        sg1out(config) --> id5 & id6 & id7 & id8 & id9 & id10 & id11 & id12 & id13 & Dispatcher & Runner

        subgraph sg3[Database]
        direction TB

        id5 --> id5out(database)
        end
    
        subgraph sg4[Population]
        id5out --> id6 --> id6out(population)
        end
        
        subgraph sg5[Descriptor]
        id7 --> id7out(descriptor)
        end

        subgraph sg6[Evolution]
        id11 --> id11out(evolutioner)
        end
        
        subgraph sg7[Generator]
        id12 --> id12out(generator)
        end

        subgraph sg8[GeneratorWrapper]
        id11 & id12 --> id14 --> id14out(generator_wrapper)
        end
        
        subgraph FitnessSub
        id10 --> id10out(fitness)
        end

        subgraph OptimizerSub
        id10out --> id13 --> id13out(optimizer)
        end
        
        subgraph DispatcherSub
        id5out --> Dispatcher --> Disout(dispatcher)
        end


    end
    sg1 --> sg2
    
        flowchart LR
    subgraph RunnerSub
    id5out(database) & id6out(population) & id13out(optimizer) & id14out(generator_wrapper) & Disout(dispatcher) --> Runner
    end