>From the stack trace, it looks like the error is somewhere inside Boost.  I'm 
>unfamiliar with the details of Boost -- you might want to ask them about it.


On Mar 17, 2010, at 6:11 AM, alev mutlu wrote:

> Hi the following codes compiles fine but gives some run time errors.
> Ant suggestions to fix the problem. 
> 
> cheers
> 
> 
> Code
> 
> #include <boost/mpi/environment.hpp>
> #include <boost/mpi/communicator.hpp>
> #include <boost/mpi/collectives.hpp>
> #include <boost/thread/barrier.hpp>
> #include <boost/thread/mutex.hpp>
> #include <boost/config.hpp> 
> #include <boost/archive/text_oarchive.hpp>
> #include <boost/archive/text_iarchive.hpp>
> #include <boost/serialization/access.hpp>
> #include <boost/serialization/string.hpp>
> #include <boost/mpi/skeleton_and_content.hpp>
> #include <boost/mpi/datatype.hpp>
> #include <boost/mpi/allocator.hpp>
> #include <boost/archive/tmpdir.hpp>
> #include <boost/serialization/utility.hpp>
> #include <boost/serialization/base_object.hpp>
> #include <boost/mpi.hpp>
> #include <boost/tokenizer.hpp>
> #include <boost/archive/tmpdir.hpp>
> #include <boost/archive/binary_oarchive.hpp>
> #include <boost/serialization/export.hpp>
> #include <boost/serialization/base_object.hpp>
> #include <boost/serialization/utility.hpp>
> #include <boost/serialization/hash_map.hpp>
> #include <boost/serialization/map.hpp>
> 
> 
> 
> #include <string>
> #include <iostream>
> #include <vector>
> #include <fstream>
> 
> #define MASTER 0
> 
> int arraySize = 7;
> 
> using namespace std;
> namespace mpi = boost::mpi;
> 
> struct field {
>     string field_name;
>     string field_type;
>     string field_ref;
>     string field_colType;    
>     
> };
> 
> namespace boost {
>     namespace serialization{
>         template<class Archive>
>         void serialize(Archive & ar, struct field & f,  unsigned int version){
>             ar & f.field_name;
>             ar & f.field_type;
>             ar & f.field_ref;
>             ar & f.field_colType;
>         }
>     }
> }
> 
> int main(int argc, char* argv[]) 
> {
>     mpi::environment env(argc, argv);
>     mpi::communicator world;
>     int m_mySize, w_mySize, kk,i;    
>     struct field *relAllValues;
>     struct field *relMyValues;
>     vector<struct field> C;
>     struct field c;    
>          
>     w_mySize = arraySize / world.size();
>     cout << "w_mySize = " << w_mySize << endl;
>     if (world.rank() == MASTER){      
>         for(int i = 0; i < arraySize; i++){            
>             c.field_name = "field_name=" ;
>             c.field_type = "field_type=";
>             c.field_ref = "field_ref=";
>             c.field_colType = "field_colType=";
>             C.push_back(c);
>         }
>           m_mySize = arraySize / world.size() + arraySize % world.size();
>         relMyValues = (struct field *) malloc(sizeof(struct field) * 
> w_mySize);
>         relAllValues = (struct field *) malloc(sizeof(struct field) * 
> arraySize);
>         
>     }
>       else{
>          relMyValues = (struct field *) malloc(sizeof(struct field) * 
> w_mySize);
>       }
>       
>       if (world.rank() == MASTER){
>           scatter(world, C, relMyValues, w_mySize, 0);
>       }
>       else{
>           scatter(world, C, relMyValues, w_mySize, 0);
>       }
> }
> 
> and the run time errors
> 
> [ceng34:00724] *** Process received signal ***
> [ceng34:00724] Signal: Segmentation fault (11)
> [ceng34:00724] Signal code: Address not mapped (1)
> [ceng34:00724] Failing at address: 0xfffffffffffffff8
> [ceng34:00724] [ 0] /lib64/libpthread.so.0 [0x315880de80]
> [ceng34:00724] [ 1] 
> /usr/lib64/libstdc++.so.6(_ZN9__gnu_cxx18__exchange_and_addEPVii+0x2) 
> [0x385dab7672]
> [ceng34:00724] [ 2] /usr/lib64/libstdc++.so.6(_ZNSs6assignERKSs+0x9b) 
> [0x385da9ca4b]
> [ceng34:00724] [ 3] test-boost(_ZN5fieldaSERKS_+0x47) [0x42197f]
> [ceng34:00724] [ 4] 
> test-boost(_ZNSt6__copyILb0ESt26random_access_iterator_tagE4copyIPK5fieldPS3_EET0_T_S8_S7_+0x3c)
>  [0x4221be]
> [ceng34:00724] [ 5] 
> test-boost(_ZSt10__copy_auxIPK5fieldPS0_ET0_T_S5_S4_+0x29) [0x422203]
> [ceng34:00724] [ 6] 
> test-boost(_ZNSt13__copy_normalILb0ELb0EE6copy_nIPK5fieldPS2_EET0_T_S7_S6_+0x25)
>  [0x42222b]
> [ceng34:00724] [ 7] test-boost(_ZSt4copyIPK5fieldPS0_ET0_T_S5_S4_+0x2d) 
> [0x42225b]
> [ceng34:00724] [ 8] 
> test-boost(_ZN5boost3mpi6detail12scatter_implI5fieldEEvRKNS0_12communicatorEPKT_PS7_iiN4mpl_5bool_ILb0EEE+0x90)
>  [0x42a630]
> [ceng34:00724] [ 9] 
> test-boost(_ZN5boost3mpi7scatterI5fieldEEvRKNS0_12communicatorEPKT_PS6_ii+0x50)
>  [0x42b162]
> [ceng34:00724] [10] 
> test-boost(_ZN5boost3mpi7scatterI5fieldEEvRKNS0_12communicatorERKSt6vectorIT_SaIS7_EEPS7_ii+0x55)
>  [0x42b1db]
> [ceng34:00724] [11] test-boost(main+0x20e) [0x420880]
> [ceng34:00724] [12] /lib64/libc.so.6(__libc_start_main+0xf4) [0x3157c1d8b4]
> [ceng34:00724] [13] test-boost(__gxx_personality_v0+0x169) [0x420489]
> [ceng34:00724] *** End of error message ***
> mpirun noticed that job rank 0 with PID 724 on node ceng34-ib exited on 
> signal 11 (Segmentation fault). 
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users


-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to