Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Benoit Brummer
    @trougnouf
    Hello
    cgnitash
    @cgnitash
    Hello :)
    ahnt
    @ahnt
    yo
    Acacia Ackles
    @alackles
    Heads up @cliff-bohm: I think PointOffset with char genome is still segfaulting. I forgot to change from char to double when running with PointOffsetRange = 1.0, and it aborted after a few updates with a segfault.
    Never mind; it happens even when using a double genome
    Clifford Bohm
    @cliff-bohm
    wha... send me a config file. it should never seg fault.
    Acacia Ackles
    @alackles
    Yessir
    Richard Wardin
    @Shalmezad
    Out of curiosity, what's the reasoning behind inlining factory functions (like inline std::shared_ptr<AbstractGenome> CircularGenome_genomeFactory)?
    Clifford Bohm
    @cliff-bohm
    Are you asking what the functions are for, or why they are inline?
    Richard Wardin
    @Shalmezad
    Why they are inline.
    Clifford Bohm
    @cliff-bohm
    I did that. I know of no argument against doing it... is there?
    Richard Wardin
    @Shalmezad
    The only two I know of would be consistency and double definition, which I'm not sure if it'd apply to inline:
    • foo.cpp includes bar.h and baz.h
    • bar.cpp and baz.cpp include buzz.h that has the function in the header
    • both bar.o and baz.o would include the function
    • When bar.o and baz.o are linked together, the linker throws a fit due to the function already being defined in one.
      I had issues with other functions, which I've been moving over to the cpp files, however found I couldn't do it with the inline ones.
    Clifford Bohm
    @cliff-bohm
    Ah, in the factories are only used in modules.h during initialization. In other cases where we want to build an instance of a particular module, we just make that module (we will know the type) so we don't need to rely on the factories.
    (there is an extra "in" in the previous reply)
    MABE 2.0 will not use anything like this process. There are a lot of issues with the current factory method... it works OKay. If I knew then what I know now....
    Richard Wardin
    @Shalmezad
    There's a 2.0?
    Clifford Bohm
    @cliff-bohm
    There will be. It's going to be something like 6 to 12 months till it exists. It will have a lot of fancy features like a signal manager, graphical support, brain to world communication via signals with arbitrary data types... etc. We are just transitioning from planning to coding at the moment.
    Ali
    @AliTehrani
    @cliff-bohm are you still in your office? Can I stop by to ask a question?
    Clifford Bohm
    @cliff-bohm
    I'm here. I'll be here till 6.
    Ali
    @AliTehrani
    I will be there in a few minutes. Thanks
    Jory Schossau
    @JorySchossau
    @cliff-bohm We could just include / borrow a piece of empirical for solving the binomial implementation problem: https://github.com/devosoft/Empirical/blob/master/source/tools/Binomial.h
    ahnt
    @ahnt
    figure(figsize=[7,7])
    i=1
    for a in range(4):
    for b in range(5):
    subplot(4,5,i)
    plot(random.random(10))
    i=i+1
    tight_layout()
    Ali
    @AliTehrani
    In function siteToDouble from Genome/MultiGenome/Chromosome/TemplatedChromosome.cpp, the first line is a cout statement reading "not read double". So when I try using multi genome this message pops up a lot. Should I just comment out the cout line and ignore the message or am I doing something wrong?
    Clifford Bohm
    @cliff-bohm
    I'm going to assume that this was something associated with debugging that should have been deleted. Go ahead and comment it out. I will check the history and submit a pull request to fix it.
    Ali
    @AliTehrani
    Thanks
    Richard Wardin
    @Shalmezad
    @cliff-bohm From our conversation at the Korean restaurant, I found a piece of software to allow stopping/restoring processes:
    https://criu.org/Simple_loop
    I'm not sure how well it'll do with MABE, but it worked fairly well for a little test script:
    ⇒  cat script.sh 
    #!/bin/sh
    
    i=1;
    while true; do
        echo $i;
        i=$((i+1));
        sleep 1
    done
    ⇒  ./script.sh 
    1
    2
    3
    4
    # More output, this is the point where I ran criu in the other shell
    78
    [1]    14822 killed     ./script.sh
    
    
    
    # Other shell, ran ps aux to find process id
    ⇒  sudo criu dump -t 14822 --shell-job -vvvv -o dump.log
    ⇒  sudo criu restore -vvvv -o dump.log --shell-job
    79
    80
    # etc
    Jory Schossau
    @JorySchossau
    @Shalmezad @cliff-bohm We use DMTCP on our HPCC to achieve this. I think it's open source, so anyone can install it? It's awesome because it works with multithreading.