Header Leaderboard Ad

Collapse

Memory Usage in Newbler 2.3

Collapse

Announcement

Collapse

SEQanswers June Challenge Has Begun!

The competition has begun! We're giving away a $50 Amazon gift card to the member who answers the most questions on our site during the month. We want to encourage our community members to share their knowledge and help each other out by answering questions related to sequencing technologies, genomics, and bioinformatics. The competition is open to all members of the site, and the winner will be announced at the beginning of July. Best of luck!

For a list of the official rules, visit (https://www.seqanswers.com/forum/sit...wledge-and-win)
See more
See less
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Memory Usage in Newbler 2.3

    I am using Newbler 2.3 on a 8 core workstation with 64 gb memory (running Ubuntu). It seems that during my newbler assemblies, memory usage is limited to ~20 gb. Is there some reason newbler wont use all the memory available (the processors usage is not limiting, they could be running at 10% and still memory usage wont go over ~22 gb)?

  • #2
    Why do you think Newbler needs more than 22 GB of RAM? Is it performing a lot of swap operations? In my experience Newbler is fairly memory efficient.

    Comment


    • #3
      This is during the "reading flowgrams" step when it is generating an output, it is the most time intensive step of my assemblies (these are eukaryote sized assemblies). There is both available CPU and memory, so it should be able to go faster, but something seems to be holding it back. The CPU usage is very low (~10% for each processor). The memory always tops out at ~ 20-21 gigs, even though that is only about a third of the available memory. With Celera assembler, you can change the memory limits during compiling the source, otherwise you are limited in your max memory usage, I didn't know if Newbler had similar limits.

      Comment


      • #4
        Originally posted by smg283 View Post
        Is there some reason newbler wont use all the memory available ...?
        Yes, and it's the same reason any computer program may not use all available memory, because it does not need to. Newbler has loaded all the data it needs, and created all of it's required data structures and that all totals up to (in your case) 20-22 GB.

        There is both available CPU and memory, so it should be able to go faster, but something seems to be holding it back.
        Not all algorithms are perfectly parallelizable. Embarrassingly parallel problems can be split into completely independent threads, fully utilizing all available cpus. An example of this would be a BLAST search; each query sequence can be searched against the database independently of all other queries. Tightly coupled problems can not be completely separated; one part of the problem may depend on the result of some other part, meaning it can not start until the first part of the problem is finished. If there are not enough independent parts of the problem able to run concurrently then some of your cpus will be idle. This is just a fact of life in computer science. Genome assembly is a complex problem with many stages. Some of these are more easily parallelized than others. Next time you run Newbler look at the cpu usage during the "Detangling alignments" step. This process is essentially single threaded; one cpu will be utilized at 100% while all the rest sit idle.

        None of your observations sound unusual or unexpected to me for a program like Newbler.

        Comment


        • #5
          See Amdahl's Law.

          Comment


          • #6
            Originally posted by smg283 View Post
            This is during the "reading flowgrams" step when it is generating an output, it is the most time intensive step of my assemblies (these are eukaryote sized assemblies). There is both available CPU and memory, so it should be able to go faster, but something seems to be holding it back. The CPU usage is very low (~10% for each processor). The memory always tops out at ~ 20-21 gigs, even though that is only about a third of the available memory. With Celera assembler, you can change the memory limits during compiling the source, otherwise you are limited in your max memory usage, I didn't know if Newbler had similar limits.

            Try to force run only on a single CPU core. Is it newbler or gsRunProcessor which which into some of the log files that it will split the memory between the forked threads? I forgot ... And, there is also "-m" commandline switch to force in-memory computation, if my memory serves me right. ;-)

            Comment

            Latest Articles

            Collapse

            ad_right_rmr

            Collapse

            News

            Collapse

            Topics Statistics Last Post
            Started by seqadmin, Yesterday, 01:08 PM
            0 responses
            6 views
            0 likes
            Last Post seqadmin  
            Started by seqadmin, 06-01-2023, 08:56 PM
            0 responses
            12 views
            0 likes
            Last Post seqadmin  
            Started by seqadmin, 06-01-2023, 07:33 AM
            0 responses
            128 views
            0 likes
            Last Post seqadmin  
            Started by seqadmin, 05-31-2023, 07:50 AM
            0 responses
            166 views
            0 likes
            Last Post seqadmin  
            Working...
            X