Git Product home page Git Product logo

Comments (7)

xiangzhou avatar xiangzhou commented on June 29, 2024

The float version was mainly introduced for the bslmm model. I tried the float version a while ago on our previous cluster (pps cluster), and found that it only uses half the memory required by the double version (if I remember correctly, for 5k idv and 0.5million snps, the float version uses 8gb while the double version uses 16gb). But that was about 5 years ago. I am not sure either whether there is any benefit nowadays. It would be great if you could do a quick test on this, and we can certainly remove this option if there is no longer benefits.

from gemma.

pcarbo avatar pcarbo commented on June 29, 2024

@xiangzhou I will test to see if FORCE_FLOAT reduces memory usage in 64-bit systems.

from gemma.

pjotrp avatar pjotrp commented on June 29, 2024

Don't use float if you have double. You have to really know what you are doing.

https://wiki.haskell.org/Performance/Floating_point

from gemma.

pcarbo avatar pcarbo commented on June 29, 2024

@xiangzhou An update on this:

I wasn't able to build the binary executable using FORCE_FLOAT = 1; it generated several errors which did not seem straightforward to resolve.

Upon further experimentation in MATLAB, I think it is possible to reduce memory requirements with single-precision. I wasn't able to find any documentation about this in MATLAB, but this webpage briefly discusses storage of <64-bit numbers in Julia.

In short, there is a potential benefit to keeping the FORCE_FLOAT option.

However, perhaps a larger issue is that debugging & maintaining single-precision and double-precision versions of GEMMA will involve substantially more effort, and I'm not sure if the effort is justified by the benefit (which, in my opinion, is relatively small---there are other more effective ways to reduce memory, e.g., by LD pruning).

I've created a new branch force-float that preserves the state of the current repository with the FORCE_FORCE option, and my plan is to remove this option in the master branch unless there are any objections.

from gemma.

pjotrp avatar pjotrp commented on June 29, 2024

This is one of the best talks I ever heard. If you want to know about float/double, spend half an hour here. It is worth it. Entertaining too.

http://dconf.org/2016/talks/clugston

from gemma.

tseemann avatar tseemann commented on June 29, 2024

I also had issues with FORCE_FLOAT in Linux.

from gemma.

pcarbo avatar pcarbo commented on June 29, 2024

@tseemann Thanks for sharing.

from gemma.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.