Trouble with sorting of vector

Roger Dahl
2008-07-29
2013-04-25
  • Roger Dahl

    Roger Dahl - 2008-07-29

    Hello there,

    I seem to have run into an issue with sorting a vector. The vector contains 8 500 000 000 records and each record consists of 3 64 bit numbers, so a total of 204GB of data. I've set up a 520GB disk file. After around an hour, Stxxl gives the following error:

    [STXXL-MSG] STXXL v1.2.0 + Boost 103500
    [STXXL-MSG] 1 disks are allocated, total space: 520,000 MB
    [STXXL-VERBOSE1] typed::block operator new[]: Meta info size: 0
    [STXXL-VERBOSE1] stxxl::aligned_alloc<4,096>(), size = 335,544,320, meta info size = 0
    [STXXL-VERBOSE1] stxxl::aligned_alloc<4,096>() address 0x1,721,000 lost 4,032 bytes
    [STXXL-VERBOSE1] stxxl::aligned_alloc<4,096>(), allocated at 1,720,040 returning 1,721,000
    ...
    [STXXL-VERBOSE1] stxxl::create_runs posting write 1,163,988,992
    [STXXL-VERBOSE1] stxxl::create_runs posting write 1,174,474,752
    [STXXL-VERBOSE1] stxxl::create_runs posting write 1,184,960,512
    [STXXL-VERBOSE1] stxxl::create_runs start waiting write_reqs
    [STXXL-VERBOSE1] stxxl::create_runs finish waiting write_reqs
    [STXXL-VERBOSE1] Starting new merge phase: nruns: 386 opt_merge_factor: 20 m:102 new_nruns: 20
    [STXXL-VERBOSE1] Warning, when allocation an external memory space, no contiguous region found
    [STXXL-VERBOSE1] It might harm the performance

    And at that point, the program hangs, using zero CPU and not accessing the disk.

    The 520GB disk file stays at its original size. The disk has more room that it could expand to if necessary. I have successfully run the sorting with smaller datasets but this is the first one that has more than 2^32 records.

    I'm running this under Vista 64 bit, with Visual Studio 2008. The program is a x64 build. When compiling, I do get a ton of warnings such as:

    warning C4244: 'argument' : conversion from 'stxxl::int_type' to 'int', possible loss of data

    warning C4334: '<<' : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)

    warning C4307: '+' : integral constant overflow

    Any help would be much appreciated.

    Roger Dahl

     
    • Nobody/Anonymous

      Hi Roger,

      could you, please, try the following:

      1. increase the stxxl verbosity level to 2 when compiling your code. Post here all output after the " [STXXL-VERBOSE1] Starting new merge phase: nruns: 386 opt_merge_factor: 20 m:102 new_nruns: 20 "

      2. Try to start with 1040GB disk file. Tell me if it helped.

      3. Post here the line numbers of warning C4334 and warning C4307. You can ignore the warning C4244, it is a known issue (we can not do anything there).

      Thank you for your input

      With best regards,
      Roman

       
    • Roger Dahl

      Roger Dahl - 2008-07-29

      Hello Roman,

      Thank you for Stxxl. It's amazing.

      I will do another run with verbosity level 2 and let you know what it says. I don't have a TB of disk space in this box :( I'll see what I can come up with. In the meantime, here's some more information.

      When I connect to the hanging process with Visual Studio, I get the following message:

      The process appears to be deadlocked (or is not running any user-mode code).  All threads have been stopped.

      The call stack is as follows (this is a release build):

           ntdll.dll!0000000077bf5aba()    
           [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]   
           kernel32.dll!0000000077aace00()    
      >    mksieve.exe!boost::detail::basic_timed_mutex::timed_lock(const boost::posix_time::ptime & wait_until={...})  Line 99 + 0x6b bytes    C++
           mksieve.exe!stxxl::DiskAllocator::new_blocks<2097152>(stxxl::BID<2097152> * begin=0x0000000007a90040, stxxl::BID<2097152> * end=0x0000000000000000)  Line 575 + 0x1e bytes    C++
           mksieve.exe!stxxl::DiskAllocator::new_blocks<2097152>(stxxl::BID<2097152> * begin=0x0000007ef4000000, stxxl::BID<2097152> * end=0x0000000000018001)  Line 672    C++
           mksieve.exe!stxxl::block_manager::new_blocks_int<stxxl::BID<2097152>,stxxl::interleaved_RC,stxxl::RunsToBIDArrayAdaptor2<2097152,stxxl::simple_vector<stxxl::sort_local::trigger_entry<stxxl::BID<2097152>,collatz_record> >,__int64> >(const unsigned __int64 nblocks=98305, stxxl::interleaved_RC * functor=0x00000000010cedc0, stxxl::RunsToBIDArrayAdaptor2<2097152,stxxl::simple_vector<stxxl::sort_local::trigger_entry<stxxl::BID<2097152>,collatz_record> >,__int64> * out=0x00000000010ced90)  Line 1304    C++
           mksieve.exe!stxxl::block_manager::new_blocks<stxxl::interleaved_RC,stxxl::RunsToBIDArrayAdaptor2<2097152,stxxl::simple_vector<stxxl::sort_local::trigger_entry<stxxl::BID<2097152>,collatz_record> >,__int64> >(stxxl::interleaved_RC * functor=0x00000000010cef40, stxxl::RunsToBIDArrayAdaptor2<2097152,stxxl::simple_vector<stxxl::sort_local::trigger_entry<stxxl::BID<2097152>,collatz_record> >,__int64> * bidbegin=0x00000000010cedc0, stxxl::RunsToBIDArrayAdaptor2<2097152,stxxl::simple_vector<stxxl::sort_local::trigger_entry<stxxl::BID<2097152>,collatz_record> >,__int64> * bidend=0x0000000000000001)  Line 1355 + 0x80 bytes    C++
           mksieve.exe!stxxl::sort_local::sort_blocks<stxxl::typed_block<2097152,collatz_record,0,void>,stxxl::RC,std::_Vector_iterator<stxxl::BID<2097152>,std::allocator<stxxl::BID<2097152> > >,cmp>(std::_Vector_iterator<stxxl::BID<2097152>,std::allocator<stxxl::BID<2097152> > > input_bids={storage=0x0000000000000000 offset=0 }, unsigned __int64 _n=98305, unsigned __int64 _m=512, cmp cmp={...})  Line 772    C++
           mksieve.exe!stxxl::sort<stxxl::vector_iterator<collatz_record,stxxl::RC,unsigned __int64,__int64,2097152,stxxl::lru_pager<8>,4>,cmp>(stxxl::vector_iterator<collatz_record,stxxl::RC,unsigned __int64,__int64,2097152,stxxl::lru_pager<8>,4> * first=0x00000000058b01d0, stxxl::vector_iterator<collatz_record,stxxl::RC,unsigned __int64,__int64,2097152,stxxl::lru_pager<8>,4> * last=0x000000000118f760, cmp cmp={...}, unsigned __int64 M=92996048)  Line 1091 + 0x39 bytes    C++
           mksieve.exe!gen_bits()  Line 159    C++
           mksieve.exe!wmain(int argc=0, char * * argv=0x000001b9d1be0cbf)  Line 320    C++
           mksieve.exe!__tmainCRTStartup()  Line 579 + 0x19 bytes    C
           kernel32.dll!0000000077aa495d()    
           ntdll.dll!0000000077bd8791()    

      The marked location is where it's apparently stuck. That is line 99 in file:

      c:\dev9_64\boost_1_35_0\boost\thread\win32\basic_timed_mutex.hpp

      Here's that line (with a bit of context):

      old_count-=(lock_flag_value+1); // there will be one less active thread on this mutex when it gets unlocked
      >>> if(win32::WaitForSingleObject(sem,::boost::detail::get_milliseconds_until(wait_until))!=0)
      {
        BOOST_INTERLOCKED_DECREMENT(&active_count);
        return false;
      }

      ---

      Compilation warnings:

      1>------ Build started: Project: mksieve, Configuration: Release x64 ------
      1>Compiling...
      1>stdafx.cpp
      1>Linking to lib file: libboost_thread-vc90-mt-1_35.lib
      1>Linking to lib file: libboost_date_time-vc90-mt-1_35.lib
      1>Linking to lib file: libboost_filesystem-vc90-mt-1_35.lib
      1>Linking to lib file: libboost_system-vc90-mt-1_35.lib
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/io/iobase.h(326) : warning C4290: C++ exception specification ignored except to indicate a function is not __declspec(nothrow)
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/io/iobase.h(463) : warning C4800: 'stxxl::request *const ' : forcing value to bool 'true' or 'false' (performance warning)
      1>Linking to lib file: libboost_iostreams-vc90-mt-1_35.lib
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/mng/mng.h(92) : warning C4800: 'stxxl::file *const ' : forcing value to bool 'true' or 'false' (performance warning)
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/mng/mng.h(862) : warning C4267: 'return' : conversion from 'size_t' to 'unsigned int', possible loss of data
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/mng/mng.h(876) : warning C4267: 'argument' : conversion from 'size_t' to 'const unsigned int', possible loss of data
      1>Compiling...
      1>mksieve.cpp
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(806) : warning C4244: 'argument' : conversion from 'unsigned __int64' to 'stxxl::bid_vector<BlkSize_>::size_type', possible loss of data
      1>        with
      1>        [
      1>            BlkSize_=2097152
      1>        ]
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(798) : while compiling class template member function 'stxxl::vector<Tp_>::vector(unsigned __int64)'
      1>        with
      1>        [
      1>            Tp_=collatz_record
      1>        ]
      1>        .\mksieve.cpp(130) : see reference to class template instantiation 'stxxl::vector<Tp_>' being compiled
      1>        with
      1>        [
      1>            Tp_=collatz_record
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(806) : warning C4244: 'argument' : conversion from 'unsigned __int64' to 'stxxl::bid_vector<BlkSize_>::size_type', possible loss of data
      1>        with
      1>        [
      1>            BlkSize_=2097152
      1>        ]
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(798) : while compiling class template member function 'stxxl::vector<Tp_>::vector(unsigned __int64)'
      1>        with
      1>        [
      1>            Tp_=index_record
      1>        ]
      1>        .\mksieve.cpp(166) : see reference to class template instantiation 'stxxl::vector<Tp_>' being compiled
      1>        with
      1>        [
      1>            Tp_=index_record
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(1287) : warning C4244: 'argument' : conversion from 'const stxxl::unsigned_type' to 'int', possible loss of data
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(1258) : while compiling class template member function 'const collatz_record &stxxl::vector<Tp_>::const_element(const stxxl::double_blocked_index<modulo2,modulo1> &) const'
      1>        with
      1>        [
      1>            Tp_=collatz_record,
      1>            modulo2=0x04,
      1>            modulo1=0x015555
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(1304) : warning C4244: 'argument' : conversion from 'const stxxl::unsigned_type' to 'int', possible loss of data
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(1310) : warning C4244: 'argument' : conversion from 'const stxxl::unsigned_type' to 'int', possible loss of data
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(1287) : warning C4244: 'argument' : conversion from 'const stxxl::unsigned_type' to 'int', possible loss of data
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(1258) : while compiling class template member function 'const index_record &stxxl::vector<Tp_>::const_element(const stxxl::double_blocked_index<modulo2,modulo1> &) const'
      1>        with
      1>        [
      1>            Tp_=index_record,
      1>            modulo2=0x04,
      1>            modulo1=0x020000
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(1304) : warning C4244: 'argument' : conversion from 'const stxxl::unsigned_type' to 'int', possible loss of data
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(1310) : warning C4244: 'argument' : conversion from 'const stxxl::unsigned_type' to 'int', possible loss of data
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(1158) : warning C4244: 'argument' : conversion from 'stxxl::int_type' to 'int', possible loss of data
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(1147) : while compiling class template member function 'void stxxl::vector<Tp_>::read_page(stxxl::int_type,stxxl::int_type) const'
      1>        with
      1>        [
      1>            Tp_=collatz_record
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(1173) : warning C4244: 'argument' : conversion from 'stxxl::int_type' to 'int', possible loss of data
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(1162) : while compiling class template member function 'void stxxl::vector<Tp_>::write_page(stxxl::int_type,stxxl::int_type) const'
      1>        with
      1>        [
      1>            Tp_=collatz_record
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(1211) : warning C4244: 'argument' : conversion from 'const stxxl::unsigned_type' to 'int', possible loss of data
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(1182) : while compiling class template member function 'collatz_record &stxxl::vector<Tp_>::element(const stxxl::double_blocked_index<modulo2,modulo1> &)'
      1>        with
      1>        [
      1>            Tp_=collatz_record,
      1>            modulo2=0x04,
      1>            modulo1=0x015555
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(1228) : warning C4244: 'argument' : conversion from 'const stxxl::unsigned_type' to 'int', possible loss of data
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(1235) : warning C4244: 'argument' : conversion from 'const stxxl::unsigned_type' to 'int', possible loss of data
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(1158) : warning C4244: 'argument' : conversion from 'stxxl::int_type' to 'int', possible loss of data
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(1147) : while compiling class template member function 'void stxxl::vector<Tp_>::read_page(stxxl::int_type,stxxl::int_type) const'
      1>        with
      1>        [
      1>            Tp_=index_record
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(1173) : warning C4244: 'argument' : conversion from 'stxxl::int_type' to 'int', possible loss of data
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(1162) : while compiling class template member function 'void stxxl::vector<Tp_>::write_page(stxxl::int_type,stxxl::int_type) const'
      1>        with
      1>        [
      1>            Tp_=index_record
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(1211) : warning C4244: 'argument' : conversion from 'const stxxl::unsigned_type' to 'int', possible loss of data
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(1182) : while compiling class template member function 'index_record &stxxl::vector<Tp_>::element(const stxxl::double_blocked_index<modulo2,modulo1> &)'
      1>        with
      1>        [
      1>            Tp_=index_record,
      1>            modulo2=0x04,
      1>            modulo1=0x020000
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(1228) : warning C4244: 'argument' : conversion from 'const stxxl::unsigned_type' to 'int', possible loss of data
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(1235) : warning C4244: 'argument' : conversion from 'const stxxl::unsigned_type' to 'int', possible loss of data
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/inmemsort.h(42) : warning C4244: 'argument' : conversion from 'stxxl::unsigned_type' to 'int', possible loss of data
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(849) : see reference to function template instantiation 'void stxxl::stl_in_memory_sort<ExtIterator_,StrictWeakOrdering_>(ExtIterator_,ExtIterator_,StrictWeakOrdering_)' being compiled
      1>        with
      1>        [
      1>            ExtIterator_=stxxl::vector_iterator<collatz_record,stxxl::RC,unsigned __int64,stxxl::vector<collatz_record>::difference_type,2097152,stxxl::lru_pager<8>,4>,
      1>            StrictWeakOrdering_=cmp
      1>        ]
      1>        .\mksieve.cpp(159) : see reference to function template instantiation 'void stxxl::sort<stxxl::vector_iterator<Tp_,AllocStr_,SzTp_,DiffTp_,BlkSize_,PgTp_,PgSz_>,cmp>(ExtIterator_,ExtIterator_,StrictWeakOrdering_,stxxl::unsigned_type)' being compiled
      1>        with
      1>        [
      1>            Tp_=collatz_record,
      1>            AllocStr_=stxxl::RC,
      1>            SzTp_=unsigned __int64,
      1>            DiffTp_=stxxl::vector<collatz_record>::difference_type,
      1>            BlkSize_=2097152,
      1>            PgTp_=stxxl::lru_pager<8>,
      1>            PgSz_=4,
      1>            ExtIterator_=stxxl::vector_iterator<collatz_record,stxxl::RC,unsigned __int64,stxxl::vector<collatz_record>::difference_type,2097152,stxxl::lru_pager<8>,4>,
      1>            StrictWeakOrdering_=cmp
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/inmemsort.h(73) : warning C4244: 'argument' : conversion from 'stxxl::unsigned_type' to 'int', possible loss of data
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(692) : warning C4244: 'argument' : conversion from 'const stxxl::unsigned_type' to 'int', possible loss of data
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(909) : see reference to function template instantiation 'stxxl::simple_vector<_Tp> *stxxl::sort_local::sort_blocks<stxxl::typed_block<RawSize_,T_>,stxxl::RC,std::_Vector_iterator<_Ty,_Alloc>,StrictWeakOrdering_>(input_bid_iterator,stxxl::unsigned_type,stxxl::unsigned_type,value_cmp)' being compiled
      1>        with
      1>        [
      1>            _Tp=stxxl::sort_local::trigger_entry<stxxl::BID<2097152>,collatz_record>,
      1>            RawSize_=2097152,
      1>            T_=collatz_record,
      1>            _Ty=stxxl::BID<2097152>,
      1>            _Alloc=std::allocator<stxxl::BID<2097152>>,
      1>            StrictWeakOrdering_=cmp,
      1>            input_bid_iterator=std::_Vector_iterator<stxxl::BID<2097152>,std::allocator<stxxl::BID<2097152>>>,
      1>            value_cmp=cmp
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(714) : warning C4244: 'argument' : conversion from 'stxxl::unsigned_type' to 'double', possible loss of data
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(767) : warning C4244: 'argument' : conversion from 'const stxxl::unsigned_type' to 'int', possible loss of data
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/inmemsort.h(42) : warning C4244: 'argument' : conversion from 'stxxl::unsigned_type' to 'int', possible loss of data
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(849) : see reference to function template instantiation 'void stxxl::stl_in_memory_sort<ExtIterator_,StrictWeakOrdering_>(ExtIterator_,ExtIterator_,StrictWeakOrdering_)' being compiled
      1>        with
      1>        [
      1>            ExtIterator_=stxxl::vector_iterator<index_record,stxxl::RC,unsigned __int64,stxxl::vector<index_record>::difference_type,2097152,stxxl::lru_pager<8>,4>,
      1>            StrictWeakOrdering_=cmp2
      1>        ]
      1>        .\mksieve.cpp(204) : see reference to function template instantiation 'void stxxl::sort<stxxl::vector_iterator<Tp_,AllocStr_,SzTp_,DiffTp_,BlkSize_,PgTp_,PgSz_>,cmp2>(ExtIterator_,ExtIterator_,StrictWeakOrdering_,stxxl::unsigned_type)' being compiled
      1>        with
      1>        [
      1>            Tp_=index_record,
      1>            AllocStr_=stxxl::RC,
      1>            SzTp_=unsigned __int64,
      1>            DiffTp_=stxxl::vector<index_record>::difference_type,
      1>            BlkSize_=2097152,
      1>            PgTp_=stxxl::lru_pager<8>,
      1>            PgSz_=4,
      1>            ExtIterator_=stxxl::vector_iterator<index_record,stxxl::RC,unsigned __int64,stxxl::vector<index_record>::difference_type,2097152,stxxl::lru_pager<8>,4>,
      1>            StrictWeakOrdering_=cmp2
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/inmemsort.h(73) : warning C4244: 'argument' : conversion from 'stxxl::unsigned_type' to 'int', possible loss of data
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(692) : warning C4244: 'argument' : conversion from 'const stxxl::unsigned_type' to 'int', possible loss of data
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(909) : see reference to function template instantiation 'stxxl::simple_vector<_Tp> *stxxl::sort_local::sort_blocks<stxxl::typed_block<RawSize_,T_>,stxxl::RC,std::_Vector_iterator<_Ty,_Alloc>,StrictWeakOrdering_>(input_bid_iterator,stxxl::unsigned_type,stxxl::unsigned_type,value_cmp)' being compiled
      1>        with
      1>        [
      1>            _Tp=stxxl::sort_local::trigger_entry<stxxl::BID<2097152>,index_record>,
      1>            RawSize_=2097152,
      1>            T_=index_record,
      1>            _Ty=stxxl::BID<2097152>,
      1>            _Alloc=std::allocator<stxxl::BID<2097152>>,
      1>            StrictWeakOrdering_=cmp2,
      1>            input_bid_iterator=std::_Vector_iterator<stxxl::BID<2097152>,std::allocator<stxxl::BID<2097152>>>,
      1>            value_cmp=cmp2
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(714) : warning C4244: 'argument' : conversion from 'stxxl::unsigned_type' to 'double', possible loss of data
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(767) : warning C4244: 'argument' : conversion from 'const stxxl::unsigned_type' to 'int', possible loss of data
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/mng/mng.h(1289) : warning C4244: 'argument' : conversion from 'stxxl::unsigned_type' to 'int', possible loss of data
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/mng/mng.h(1355) : see reference to function template instantiation 'void stxxl::block_manager::new_blocks_int<bid_type,DiskAssgnFunctor,BIDIteratorClass>(const stxxl::unsigned_type,DiskAssgnFunctor,OutputIterator)' being compiled
      1>        with
      1>        [
      1>            DiskAssgnFunctor=stxxl::RC,
      1>            BIDIteratorClass=std::_Vector_iterator<stxxl::BID<2097152>,std::allocator<stxxl::BID<2097152>>>,
      1>            OutputIterator=std::_Vector_iterator<stxxl::BID<2097152>,std::allocator<stxxl::BID<2097152>>>
      1>        ]
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(823) : see reference to function template instantiation 'void stxxl::block_manager::new_blocks<stxxl::RC,std::_Vector_iterator<_Ty,_Alloc>>(DiskAssgnFunctor,BIDIteratorClass,BIDIteratorClass)' being compiled
      1>        with
      1>        [
      1>            _Ty=stxxl::BID<2097152>,
      1>            _Alloc=std::allocator<stxxl::BID<2097152>>,
      1>            DiskAssgnFunctor=stxxl::RC,
      1>            BIDIteratorClass=std::_Vector_iterator<stxxl::BID<2097152>,std::allocator<stxxl::BID<2097152>>>
      1>        ]
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(798) : while compiling class template member function 'stxxl::vector<Tp_>::vector(unsigned __int64)'
      1>        with
      1>        [
      1>            Tp_=collatz_record
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/mng/mng.h(1140) : warning C4244: 'argument' : conversion from 'stxxl::int_type' to 'int', possible loss of data
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/mng/mng.h(1139) : while compiling class template member function 'int stxxl::offset_allocator<BaseAllocator_>::operator ()(stxxl::int_type) const'
      1>        with
      1>        [
      1>            BaseAllocator_=stxxl::RC
      1>        ]
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(857) : see reference to class template instantiation 'stxxl::offset_allocator<BaseAllocator_>' being compiled
      1>        with
      1>        [
      1>            BaseAllocator_=stxxl::RC
      1>        ]
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/containers/vector.h(844) : while compiling class template member function 'void stxxl::vector<Tp_>::reserve(unsigned __int64)'
      1>        with
      1>        [
      1>            Tp_=collatz_record
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/mng/mng.h(1289) : warning C4244: 'argument' : conversion from 'stxxl::unsigned_type' to 'int', possible loss of data
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/mng/mng.h(1355) : see reference to function template instantiation 'void stxxl::block_manager::new_blocks_int<bid_type,DiskAssgnFunctor,BIDIteratorClass>(const stxxl::unsigned_type,DiskAssgnFunctor,OutputIterator)' being compiled
      1>        with
      1>        [
      1>            DiskAssgnFunctor=stxxl::FR,
      1>            BIDIteratorClass=stxxl::BID<2097152> *,
      1>            OutputIterator=stxxl::BID<2097152> *
      1>        ]
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(866) : see reference to function template instantiation 'void stxxl::block_manager::new_blocks<stxxl::FR,stxxl::BID<SIZE>*>(DiskAssgnFunctor,BIDIteratorClass,BIDIteratorClass)' being compiled
      1>        with
      1>        [
      1>            SIZE=2097152,
      1>            DiskAssgnFunctor=stxxl::FR,
      1>            BIDIteratorClass=stxxl::BID<2097152> *
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(193) : warning C4244: 'argument' : conversion from 'stxxl::int_type' to 'int', possible loss of data
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(700) : see reference to function template instantiation 'void stxxl::sort_local::create_runs<block_type,run_type,input_bid_iterator,value_cmp>(input_bid_iterator,run_type **,stxxl::int_type,stxxl::int_type,value_cmp)' being compiled
      1>        with
      1>        [
      1>            block_type=stxxl::typed_block<2097152,collatz_record>,
      1>            input_bid_iterator=std::_Vector_iterator<stxxl::BID<2097152>,std::allocator<stxxl::BID<2097152>>>,
      1>            value_cmp=cmp,
      1>            run_type=run_type
      1>        ]
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(909) : see reference to function template instantiation 'stxxl::simple_vector<_Tp> *stxxl::sort_local::sort_blocks<stxxl::typed_block<RawSize_,T_>,stxxl::RC,std::_Vector_iterator<_Ty,_Alloc>,StrictWeakOrdering_>(input_bid_iterator,stxxl::unsigned_type,stxxl::unsigned_type,value_cmp)' being compiled
      1>        with
      1>        [
      1>            _Tp=stxxl::sort_local::trigger_entry<stxxl::BID<2097152>,collatz_record>,
      1>            RawSize_=2097152,
      1>            T_=collatz_record,
      1>            _Ty=stxxl::BID<2097152>,
      1>            _Alloc=std::allocator<stxxl::BID<2097152>>,
      1>            StrictWeakOrdering_=cmp,
      1>            input_bid_iterator=std::_Vector_iterator<stxxl::BID<2097152>,std::allocator<stxxl::BID<2097152>>>,
      1>            value_cmp=cmp
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(211) : warning C4244: 'argument' : conversion from 'stxxl::int_type' to 'int', possible loss of data
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(252) : warning C4244: 'argument' : conversion from 'stxxl::int_type' to 'int', possible loss of data
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(269) : warning C4244: 'argument' : conversion from 'stxxl::int_type' to 'int', possible loss of data
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(280) : warning C4244: 'argument' : conversion from 'stxxl::int_type' to 'int', possible loss of data
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(193) : warning C4244: 'argument' : conversion from 'stxxl::int_type' to 'int', possible loss of data
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(700) : see reference to function template instantiation 'void stxxl::sort_local::create_runs<block_type,run_type,input_bid_iterator,value_cmp>(input_bid_iterator,run_type **,stxxl::int_type,stxxl::int_type,value_cmp)' being compiled
      1>        with
      1>        [
      1>            block_type=stxxl::typed_block<2097152,index_record>,
      1>            input_bid_iterator=std::_Vector_iterator<stxxl::BID<2097152>,std::allocator<stxxl::BID<2097152>>>,
      1>            value_cmp=cmp2,
      1>            run_type=run_type
      1>        ]
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(909) : see reference to function template instantiation 'stxxl::simple_vector<_Tp> *stxxl::sort_local::sort_blocks<stxxl::typed_block<RawSize_,T_>,stxxl::RC,std::_Vector_iterator<_Ty,_Alloc>,StrictWeakOrdering_>(input_bid_iterator,stxxl::unsigned_type,stxxl::unsigned_type,value_cmp)' being compiled
      1>        with
      1>        [
      1>            _Tp=stxxl::sort_local::trigger_entry<stxxl::BID<2097152>,index_record>,
      1>            RawSize_=2097152,
      1>            T_=index_record,
      1>            _Ty=stxxl::BID<2097152>,
      1>            _Alloc=std::allocator<stxxl::BID<2097152>>,
      1>            StrictWeakOrdering_=cmp2,
      1>            input_bid_iterator=std::_Vector_iterator<stxxl::BID<2097152>,std::allocator<stxxl::BID<2097152>>>,
      1>            value_cmp=cmp2
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(211) : warning C4244: 'argument' : conversion from 'stxxl::int_type' to 'int', possible loss of data
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(252) : warning C4244: 'argument' : conversion from 'stxxl::int_type' to 'int', possible loss of data
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(269) : warning C4244: 'argument' : conversion from 'stxxl::int_type' to 'int', possible loss of data
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(280) : warning C4244: 'argument' : conversion from 'stxxl::int_type' to 'int', possible loss of data
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/mng/buf_writer.h(113) : warning C4244: 'argument' : conversion from 'stxxl::int_type' to 'int', possible loss of data
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/mng/buf_writer.h(91) : while compiling class template member function 'stxxl::typed_block<RawSize_,T_> *stxxl::buffered_writer<block_type>::get_free_block(void)'
      1>        with
      1>        [
      1>            RawSize_=2097152,
      1>            T_=collatz_record,
      1>            block_type=stxxl::typed_block<2097152,collatz_record>
      1>        ]
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(451) : see reference to class template instantiation 'stxxl::buffered_writer<block_type>' being compiled
      1>        with
      1>        [
      1>            block_type=stxxl::typed_block<2097152,collatz_record>
      1>        ]
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(783) : see reference to function template instantiation 'void stxxl::sort_local::merge_runs<block_type,run_type,value_cmp>(run_type **,stxxl::int_type,run_type *,stxxl::unsigned_type,value_cmp)' being compiled
      1>        with
      1>        [
      1>            block_type=stxxl::typed_block<2097152,collatz_record>,
      1>            value_cmp=cmp,
      1>            run_type=run_type
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/mng/buf_writer.h(152) : warning C4244: 'argument' : conversion from 'stxxl::int_type' to 'int', possible loss of data
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/mng/buf_writer.h(131) : while compiling class template member function 'stxxl::typed_block<RawSize_,T_> *stxxl::buffered_writer<block_type>::write(block_type *,const stxxl::BID<SIZE> &)'
      1>        with
      1>        [
      1>            RawSize_=2097152,
      1>            T_=collatz_record,
      1>            block_type=stxxl::typed_block<2097152,collatz_record>,
      1>            SIZE=2097152
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(68) : warning C4334: '<<' : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(61) : while compiling class template member function 'stxxl::loser_tree<run_cursor_type,run_cursor_cmp_type,buffer_size>::loser_tree(stxxl::block_prefetcher<block_type,bid_iterator_type> *,stxxl::int_type,run_cursor_cmp_type)'
      1>        with
      1>        [
      1>            run_cursor_type=run_cursor_type,
      1>            run_cursor_cmp_type=run_cursor2_cmp_type,
      1>            buffer_size=87381,
      1>            block_type=stxxl::typed_block<2097152,collatz_record>,
      1>            bid_iterator_type=stxxl::sort_local::trigger_entry<stxxl::BID<2097152>,collatz_record> *
      1>        ]
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(592) : see reference to class template instantiation 'stxxl::loser_tree<run_cursor_type,run_cursor_cmp_type,buffer_size>' being compiled
      1>        with
      1>        [
      1>            run_cursor_type=run_cursor_type,
      1>            run_cursor_cmp_type=run_cursor2_cmp_type,
      1>            buffer_size=87381
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/mng/buf_writer.h(113) : warning C4244: 'argument' : conversion from 'stxxl::int_type' to 'int', possible loss of data
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/mng/buf_writer.h(91) : while compiling class template member function 'stxxl::typed_block<RawSize_,T_> *stxxl::buffered_writer<block_type>::get_free_block(void)'
      1>        with
      1>        [
      1>            RawSize_=2097152,
      1>            T_=index_record,
      1>            block_type=stxxl::typed_block<2097152,index_record>
      1>        ]
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(451) : see reference to class template instantiation 'stxxl::buffered_writer<block_type>' being compiled
      1>        with
      1>        [
      1>            block_type=stxxl::typed_block<2097152,index_record>
      1>        ]
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(783) : see reference to function template instantiation 'void stxxl::sort_local::merge_runs<block_type,run_type,value_cmp>(run_type **,stxxl::int_type,run_type *,stxxl::unsigned_type,value_cmp)' being compiled
      1>        with
      1>        [
      1>            block_type=stxxl::typed_block<2097152,index_record>,
      1>            value_cmp=cmp2,
      1>            run_type=run_type
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/mng/buf_writer.h(152) : warning C4244: 'argument' : conversion from 'stxxl::int_type' to 'int', possible loss of data
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/mng/buf_writer.h(131) : while compiling class template member function 'stxxl::typed_block<RawSize_,T_> *stxxl::buffered_writer<block_type>::write(block_type *,const stxxl::BID<SIZE> &)'
      1>        with
      1>        [
      1>            RawSize_=2097152,
      1>            T_=index_record,
      1>            block_type=stxxl::typed_block<2097152,index_record>,
      1>            SIZE=2097152
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(68) : warning C4334: '<<' : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(61) : while compiling class template member function 'stxxl::loser_tree<run_cursor_type,run_cursor_cmp_type,buffer_size>::loser_tree(stxxl::block_prefetcher<block_type,bid_iterator_type> *,stxxl::int_type,run_cursor_cmp_type)'
      1>        with
      1>        [
      1>            run_cursor_type=run_cursor_type,
      1>            run_cursor_cmp_type=run_cursor2_cmp_type,
      1>            buffer_size=131072,
      1>            block_type=stxxl::typed_block<2097152,index_record>,
      1>            bid_iterator_type=stxxl::sort_local::trigger_entry<stxxl::BID<2097152>,index_record> *
      1>        ]
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(592) : see reference to class template instantiation 'stxxl::loser_tree<run_cursor_type,run_cursor_cmp_type,buffer_size>' being compiled
      1>        with
      1>        [
      1>            run_cursor_type=run_cursor_type,
      1>            run_cursor_cmp_type=run_cursor2_cmp_type,
      1>            buffer_size=131072
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/mng/mng.h(1289) : warning C4244: 'argument' : conversion from 'stxxl::unsigned_type' to 'int', possible loss of data
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/mng/mng.h(1355) : see reference to function template instantiation 'void stxxl::block_manager::new_blocks_int<bid_type,DiskAssgnFunctor,BIDIteratorClass>(const stxxl::unsigned_type,DiskAssgnFunctor,OutputIterator)' being compiled
      1>        with
      1>        [
      1>            DiskAssgnFunctor=stxxl::RC,
      1>            BIDIteratorClass=stxxl::trigger_entry_iterator<stxxl::sort_local::trigger_entry<stxxl::BID<2097152>,collatz_record> *,2097152>,
      1>            OutputIterator=stxxl::trigger_entry_iterator<stxxl::sort_local::trigger_entry<stxxl::BID<2097152>,collatz_record> *,2097152>
      1>        ]
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(694) : see reference to function template instantiation 'void stxxl::block_manager::new_blocks<stxxl::RC,stxxl::trigger_entry_iterator<trigger_iterator_type,_BlkSz>>(DiskAssgnFunctor,BIDIteratorClass,BIDIteratorClass)' being compiled
      1>        with
      1>        [
      1>            trigger_iterator_type=stxxl::sort_local::trigger_entry<stxxl::BID<2097152>,collatz_record> *,
      1>            _BlkSz=2097152,
      1>            DiskAssgnFunctor=stxxl::RC,
      1>            BIDIteratorClass=stxxl::trigger_entry_iterator<stxxl::sort_local::trigger_entry<stxxl::BID<2097152>,collatz_record> *,2097152>
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/mng/mng.h(1289) : warning C4244: 'argument' : conversion from 'stxxl::unsigned_type' to 'int', possible loss of data
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/mng/mng.h(1355) : see reference to function template instantiation 'void stxxl::block_manager::new_blocks_int<bid_type,DiskAssgnFunctor,BIDIteratorClass>(const stxxl::unsigned_type,DiskAssgnFunctor,OutputIterator)' being compiled
      1>        with
      1>        [
      1>            DiskAssgnFunctor=stxxl::RC,
      1>            BIDIteratorClass=stxxl::trigger_entry_iterator<stxxl::sort_local::trigger_entry<stxxl::BID<2097152>,index_record> *,2097152>,
      1>            OutputIterator=stxxl::trigger_entry_iterator<stxxl::sort_local::trigger_entry<stxxl::BID<2097152>,index_record> *,2097152>
      1>        ]
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/sort.h(694) : see reference to function template instantiation 'void stxxl::block_manager::new_blocks<stxxl::RC,stxxl::trigger_entry_iterator<trigger_iterator_type,_BlkSz>>(DiskAssgnFunctor,BIDIteratorClass,BIDIteratorClass)' being compiled
      1>        with
      1>        [
      1>            trigger_iterator_type=stxxl::sort_local::trigger_entry<stxxl::BID<2097152>,index_record> *,
      1>            _BlkSz=2097152,
      1>            DiskAssgnFunctor=stxxl::RC,
      1>            BIDIteratorClass=stxxl::trigger_entry_iterator<stxxl::sort_local::trigger_entry<stxxl::BID<2097152>,index_record> *,2097152>
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(151) : warning C4307: '+' : integral constant overflow
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(209) : see reference to function template instantiation 'void stxxl::loser_tree<run_cursor_type,run_cursor_cmp_type,buffer_size>::multi_merge_unrolled<1>(collatz_record *)' being compiled
      1>        with
      1>        [
      1>            run_cursor_type=run_cursor_type,
      1>            run_cursor_cmp_type=run_cursor2_cmp_type,
      1>            buffer_size=87381
      1>        ]
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(202) : while compiling class template member function 'void stxxl::loser_tree<run_cursor_type,run_cursor_cmp_type,buffer_size>::multi_merge(collatz_record *)'
      1>        with
      1>        [
      1>            run_cursor_type=run_cursor_type,
      1>            run_cursor_cmp_type=run_cursor2_cmp_type,
      1>            buffer_size=87381
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(151) : warning C4307: '+' : integral constant overflow
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(150) : warning C4307: '+' : integral constant overflow
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(212) : see reference to function template instantiation 'void stxxl::loser_tree<run_cursor_type,run_cursor_cmp_type,buffer_size>::multi_merge_unrolled<2>(collatz_record *)' being compiled
      1>        with
      1>        [
      1>            run_cursor_type=run_cursor_type,
      1>            run_cursor_cmp_type=run_cursor2_cmp_type,
      1>            buffer_size=87381
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(150) : warning C4307: '+' : integral constant overflow
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(149) : warning C4307: '+' : integral constant overflow
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(215) : see reference to function template instantiation 'void stxxl::loser_tree<run_cursor_type,run_cursor_cmp_type,buffer_size>::multi_merge_unrolled<3>(collatz_record *)' being compiled
      1>        with
      1>        [
      1>            run_cursor_type=run_cursor_type,
      1>            run_cursor_cmp_type=run_cursor2_cmp_type,
      1>            buffer_size=87381
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(149) : warning C4307: '+' : integral constant overflow
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(148) : warning C4307: '+' : integral constant overflow
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(218) : see reference to function template instantiation 'void stxxl::loser_tree<run_cursor_type,run_cursor_cmp_type,buffer_size>::multi_merge_unrolled<4>(collatz_record *)' being compiled
      1>        with
      1>        [
      1>            run_cursor_type=run_cursor_type,
      1>            run_cursor_cmp_type=run_cursor2_cmp_type,
      1>            buffer_size=87381
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(148) : warning C4307: '+' : integral constant overflow
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(147) : warning C4307: '+' : integral constant overflow
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(221) : see reference to function template instantiation 'void stxxl::loser_tree<run_cursor_type,run_cursor_cmp_type,buffer_size>::multi_merge_unrolled<5>(collatz_record *)' being compiled
      1>        with
      1>        [
      1>            run_cursor_type=run_cursor_type,
      1>            run_cursor_cmp_type=run_cursor2_cmp_type,
      1>            buffer_size=87381
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(147) : warning C4307: '+' : integral constant overflow
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(146) : warning C4307: '+' : integral constant overflow
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(224) : see reference to function template instantiation 'void stxxl::loser_tree<run_cursor_type,run_cursor_cmp_type,buffer_size>::multi_merge_unrolled<6>(collatz_record *)' being compiled
      1>        with
      1>        [
      1>            run_cursor_type=run_cursor_type,
      1>            run_cursor_cmp_type=run_cursor2_cmp_type,
      1>            buffer_size=87381
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(146) : warning C4307: '+' : integral constant overflow
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(145) : warning C4307: '+' : integral constant overflow
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(227) : see reference to function template instantiation 'void stxxl::loser_tree<run_cursor_type,run_cursor_cmp_type,buffer_size>::multi_merge_unrolled<7>(collatz_record *)' being compiled
      1>        with
      1>        [
      1>            run_cursor_type=run_cursor_type,
      1>            run_cursor_cmp_type=run_cursor2_cmp_type,
      1>            buffer_size=87381
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(145) : warning C4307: '+' : integral constant overflow
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(144) : warning C4307: '+' : integral constant overflow
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(230) : see reference to function template instantiation 'void stxxl::loser_tree<run_cursor_type,run_cursor_cmp_type,buffer_size>::multi_merge_unrolled<8>(collatz_record *)' being compiled
      1>        with
      1>        [
      1>            run_cursor_type=run_cursor_type,
      1>            run_cursor_cmp_type=run_cursor2_cmp_type,
      1>            buffer_size=87381
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(144) : warning C4307: '+' : integral constant overflow
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(143) : warning C4307: '+' : integral constant overflow
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(233) : see reference to function template instantiation 'void stxxl::loser_tree<run_cursor_type,run_cursor_cmp_type,buffer_size>::multi_merge_unrolled<9>(collatz_record *)' being compiled
      1>        with
      1>        [
      1>            run_cursor_type=run_cursor_type,
      1>            run_cursor_cmp_type=run_cursor2_cmp_type,
      1>            buffer_size=87381
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(143) : warning C4307: '+' : integral constant overflow
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(151) : warning C4307: '+' : integral constant overflow
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(209) : see reference to function template instantiation 'void stxxl::loser_tree<run_cursor_type,run_cursor_cmp_type,buffer_size>::multi_merge_unrolled<1>(index_record *)' being compiled
      1>        with
      1>        [
      1>            run_cursor_type=run_cursor_type,
      1>            run_cursor_cmp_type=run_cursor2_cmp_type,
      1>            buffer_size=131072
      1>        ]
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(202) : while compiling class template member function 'void stxxl::loser_tree<run_cursor_type,run_cursor_cmp_type,buffer_size>::multi_merge(index_record *)'
      1>        with
      1>        [
      1>            run_cursor_type=run_cursor_type,
      1>            run_cursor_cmp_type=run_cursor2_cmp_type,
      1>            buffer_size=131072
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(151) : warning C4307: '+' : integral constant overflow
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(150) : warning C4307: '+' : integral constant overflow
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(212) : see reference to function template instantiation 'void stxxl::loser_tree<run_cursor_type,run_cursor_cmp_type,buffer_size>::multi_merge_unrolled<2>(index_record *)' being compiled
      1>        with
      1>        [
      1>            run_cursor_type=run_cursor_type,
      1>            run_cursor_cmp_type=run_cursor2_cmp_type,
      1>            buffer_size=131072
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(150) : warning C4307: '+' : integral constant overflow
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(149) : warning C4307: '+' : integral constant overflow
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(215) : see reference to function template instantiation 'void stxxl::loser_tree<run_cursor_type,run_cursor_cmp_type,buffer_size>::multi_merge_unrolled<3>(index_record *)' being compiled
      1>        with
      1>        [
      1>            run_cursor_type=run_cursor_type,
      1>            run_cursor_cmp_type=run_cursor2_cmp_type,
      1>            buffer_size=131072
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(149) : warning C4307: '+' : integral constant overflow
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(148) : warning C4307: '+' : integral constant overflow
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(218) : see reference to function template instantiation 'void stxxl::loser_tree<run_cursor_type,run_cursor_cmp_type,buffer_size>::multi_merge_unrolled<4>(index_record *)' being compiled
      1>        with
      1>        [
      1>            run_cursor_type=run_cursor_type,
      1>            run_cursor_cmp_type=run_cursor2_cmp_type,
      1>            buffer_size=131072
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(148) : warning C4307: '+' : integral constant overflow
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(147) : warning C4307: '+' : integral constant overflow
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(221) : see reference to function template instantiation 'void stxxl::loser_tree<run_cursor_type,run_cursor_cmp_type,buffer_size>::multi_merge_unrolled<5>(index_record *)' being compiled
      1>        with
      1>        [
      1>            run_cursor_type=run_cursor_type,
      1>            run_cursor_cmp_type=run_cursor2_cmp_type,
      1>            buffer_size=131072
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(147) : warning C4307: '+' : integral constant overflow
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(146) : warning C4307: '+' : integral constant overflow
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(224) : see reference to function template instantiation 'void stxxl::loser_tree<run_cursor_type,run_cursor_cmp_type,buffer_size>::multi_merge_unrolled<6>(index_record *)' being compiled
      1>        with
      1>        [
      1>            run_cursor_type=run_cursor_type,
      1>            run_cursor_cmp_type=run_cursor2_cmp_type,
      1>            buffer_size=131072
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(146) : warning C4307: '+' : integral constant overflow
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(145) : warning C4307: '+' : integral constant overflow
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(227) : see reference to function template instantiation 'void stxxl::loser_tree<run_cursor_type,run_cursor_cmp_type,buffer_size>::multi_merge_unrolled<7>(index_record *)' being compiled
      1>        with
      1>        [
      1>            run_cursor_type=run_cursor_type,
      1>            run_cursor_cmp_type=run_cursor2_cmp_type,
      1>            buffer_size=131072
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(145) : warning C4307: '+' : integral constant overflow
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(144) : warning C4307: '+' : integral constant overflow
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(230) : see reference to function template instantiation 'void stxxl::loser_tree<run_cursor_type,run_cursor_cmp_type,buffer_size>::multi_merge_unrolled<8>(index_record *)' being compiled
      1>        with
      1>        [
      1>            run_cursor_type=run_cursor_type,
      1>            run_cursor_cmp_type=run_cursor2_cmp_type,
      1>            buffer_size=131072
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(144) : warning C4307: '+' : integral constant overflow
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(143) : warning C4307: '+' : integral constant overflow
      1>        C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(233) : see reference to function template instantiation 'void stxxl::loser_tree<run_cursor_type,run_cursor_cmp_type,buffer_size>::multi_merge_unrolled<9>(index_record *)' being compiled
      1>        with
      1>        [
      1>            run_cursor_type=run_cursor_type,
      1>            run_cursor_cmp_type=run_cursor2_cmp_type,
      1>            buffer_size=131072
      1>        ]
      1>C:\dev9_64\stxxl-1.2.0\include\stxxl/bits/algo/losertree.h(143) : warning C4307: '+' : integral constant overflow
      1>Linking...
      1>   Creating library C:\Users\roger\Projects\cuda_kites\mk_sieve_9_64\mksieve\x64\Release\mksieve.lib and object C:\Users\roger\Projects\cuda_kites\mk_sieve_9_64\mksieve\x64\Release\mksieve.exp
      1>Generating code
      1>Finished generating code
      1>Embedding manifest...
      1>Build Time 0:25
      1>Build log was saved at "file://c:\Users\roger\Projects\cuda_kites\mk_sieve_9_64\mksieve\x64\Release\BuildLog.htm"
      1>mksieve - 0 error(s), 90 warning(s)
      ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

      Thanks,

      Roger

       
      • Nobody/Anonymous

        Hi Roger,

        try run it it with 3x204GB space if you can.

        thank you
        Roman

         
    • Nobody/Anonymous

      Hi Roger,

      I have pushed a fix that should fix this bug. Try to checkout this version:

      svn checkout https://stxxl.svn.sourceforge.net/svnroot/stxxl/branches/1.2.0_bugfixes/ stxxl_1.2.0_bugfixes

      Tell me if your problem has been solved.

      Best regards,
      Roman

       
    • Roger Dahl

      Roger Dahl - 2008-07-30

      Roman,

      Thank you for the bugfix. I haven't tried it yet. Just wanted to give you the most recent info though it might be moot at this point. I ran the program with verbose = 2 and got two extra lines of information before the hang:

      ...
      [STXXL-VERBOSE2] stxxl::aligned_dealloc(<4,096>), ptr = 0x27,411,000
      [STXXL-VERBOSE1] Starting new merge phase: nruns: 385 opt_merge_factor: 385 m:512 new_nruns: 1
      [STXXL-VERBOSE2] DiskAllocator::new_blocks<BLK_SIZE>,  BLK_SIZE = 2,097,152, free:339,096,895,488 total:545,259,520,000 begin: 0,000,000,007,7D0,040 end: 0,000,000,007,950,050
      [STXXL-VERBOSE2] Asking for a block with size: 2,097,152
      ...(~600,000 copies of the line above)
      [STXXL-VERBOSE1] Warning, when allocation an external memory space, no contiguous region found
      [STXXL-VERBOSE1] It might harm the performance

      I then added another disk to the box, shuffled some files around and increased the disk space to 1040000 like so:

      disk=d:\stxxl.tmp,640000,wincall
      disk=f:\stxxl.tmp,400000,wincall

      With this change, the program completed without any issues.

      I will download the SVN head and try the new version with the disk space set back to 520000. I will let you know how that comes out.

      Thanks again,

      Roger

       
    • Roger Dahl

      Roger Dahl - 2008-08-31

      Roman,

      Unfortunately, I am no longer able to reproduce the error so I can't check if it's resolved by the SVN head. I'm not sure what has changed since I first started this thread... Maybe it was related to the amount of free disk space?

      Thanks,

      Roger

       

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks