bombing out writing large scratch files
Satish Balay
balay at mcs.anl.gov
Sun May 28 09:49:44 CDT 2006
Yes - VecView()/VecLoad() should work. And it should be reasonably
efficient.
Satish
On Sun, 28 May 2006, Randall Mackie wrote:
> Satish,
>
> Yes, PETSc was compiled in debug mode.
>
> Since I'm simply storing vectors in a temporary file, could I get
> around this by using VecView and writing each vector to the
> same Viewer in binary format, then reading them later?
>
> In other words:
>
> do loop=1,n
>
> call VecView (xvec(:,loop).....)
>
> end do
>
>
>
> then later
>
>
> do loop=1,n
> call VecLoad (xvec(:,loop)....)
>
> end do
>
>
> Randy
>
> ps. I'll try your other suggestions as well. However, this code has worked
> flawlessly until now, with a model much much larger than I've used in the
> past.
>
>
>
> Satish Balay wrote:
> > - Not sure what SIGUSR1 means in this context.
> >
> > - The stack doesn't show any PETSc/user code. Was
> > this code compiled with debug version of PETSc?
> >
> > - it could be that gdb is unable to look at intel compilers stack
> > [normally gdb should work]. If thats the case - you could run with
> > '-start_in_debugger idb']
> >
> > - It appears that this breakage is from usercode which calls fortran
> > I/O [for_write_dir_xmit()]. There is no fortran I/O from PETSc side
> > of the code. I think it could still be a bug in the usercode.
> >
> > However PETSc does try to detect the availability of
> > _intel_fast_memcpy() and use it from C side. I don't think this is the
> > cause. But to verify you could remove the flag
> > PETSC_HAVE__INTEL_FAST_MEMCPY from petscconf.h and rebuild libraries.
> >
> > Satish
> >
> >
> > On Sun, 28 May 2006, Randall Mackie wrote:
> >
> > > Satish,
> > >
> > > Thanks, using method (2) worked. However, when I run a bt in gdb,
> > > I get the following output:
> > >
> > > Loaded symbols for /lib/libnss_files.so.2
> > > 0x080b2631 in d3inv_3_3 () at d3inv_3_3.F:2063
> > > 2063 call VecAssemblyBegin(xyz,ierr)
> > > (gdb) cont
> > > Continuing.
> > >
> > > Program received signal SIGUSR1, User defined signal 1.
> > > [Switching to Thread 1082952160 (LWP 23496)]
> > > 0x088cd729 in _intel_fast_memcpy.J ()
> > > Current language: auto; currently fortran
> > > (gdb) bt
> > > #0 0x088cd729 in _intel_fast_memcpy.J ()
> > > #1 0x40620628 in for_write_dir_xmit ()
> > > from /opt/intel_fc_80/lib/libifcore.so.5
> > > #2 0xbfffa6b0 in ?? ()
> > > #3 0x00000008 in ?? ()
> > > #4 0xbfff986c in ?? ()
> > > #5 0xbfff9890 in ?? ()
> > > #6 0x406873a8 in __dtors_list_end () from
> > > /opt/intel_fc_80/lib/libifcore.so.5
> > > #7 0x00000002 in ?? ()
> > > #8 0x00000000 in ?? ()
> > > (gdb)
> > >
> > > This all makes me think this is an INTEL compiler bug, and has nothing to
> > > do with my code.
> > >
> > > Any ideas?
> > >
> > > Randy
> > >
> > >
> > > Satish Balay wrote:
> > > > Looks like you have direct access to all the cluster nodes. Perhaps
> > > > you have admin access? You can do either of the following:
> > > >
> > > > * if the cluster frontend/compute nodes have common filesystem [i.e
> > > > all machines can see the same file for ~/.Xauthority] and you can get
> > > > 'sshd' settings on the frontend changed - then:
> > > >
> > > > - configure sshd with 'X11UseLocalhost no' - this way xterms on the
> > > > compute-nodes can connect to the 'ssh-x11' port on the frontend -
> > > > run
> > > > the PETSc app with: '-display frontend:ssh-x11-port'
> > > >
> > > > * However if the above is not possible - but you can ssh directly to
> > > > all the the compute nodes [perhaps from the frontend] then you can
> > > > cascade x11 forwarding with:
> > > >
> > > > - ssh from desktop to frontend
> > > > - ssh from frontend to node-9 [if you know which machine is node9
> > > > from the machine file.]
> > > > - If you don't know which one is the node-9 - then ssh from frontend
> > > > to all the nodes :). Mostlikely all nodes will get a display
> > > > 'localhost:l0.0'
> > > > - so now you can run the executable with the option
> > > > -display localhost:10.0
> > > >
> > > > The other alternative that might work [for interactive runs] is:
> > > >
> > > > -start_in_debugger noxterm -debugger_nodes 9
> > > >
> > > > Satish
> > > >
> > > > On Sat, 27 May 2006, Randall Mackie wrote:
> > > >
> > > > > I can't seem to get the debugger to pop up on my screen.
> > > > >
> > > > > When I'm logged into the cluster I'm working on, I can
> > > > > type xterm &, and an xterm pops up on my display. So I know
> > > > > I can get something from the remote cluster.
> > > > >
> > > > > Now, when I try this using PETSc, I'm getting the following error
> > > > > message, for example:
> > > > >
> > > > >
> > > > > ------------------------------------------------------------------------
> > > > > [17]PETSC ERROR: PETSC: Attaching gdb to
> > > > > /home/randy/d3inv/PETSC_V3.3/d3inv_3_3_petsc of pid 3628 on display
> > > > > 24.5.142.138:0.0 on machine compute-0-23.local
> > > > >
> > > > > ------------------------------------------------------------------------
> > > > >
> > > > > I'm using this in my command file:
> > > > >
> > > > > source ~/.bashrc
> > > > > time /opt/mpich/intel/bin/mpirun -np 20 -nolocal -machinefile machines
> > > > > \
> > > > > /home/randy/d3inv/PETSC_V3.3/d3inv_3_3_petsc \
> > > > > -start_in_debugger \
> > > > > -debugger_node 1 \
> > > > > -display 24.5.142.138:0.0 \
> > > > > -em_ksp_type bcgs \
> > > > > -em_sub_pc_type ilu \
> > > > > -em_sub_pc_factor_levels 8 \
> > > > > -em_sub_pc_factor_fill 4 \
> > > > > -em_sub_pc_factor_reuse_ordering \
> > > > > -em_sub_pc_factor_reuse_fill \
> > > > > -em_sub_pc_factor_mat_ordering_type rcm \
> > > > > -divh_ksp_type cr \
> > > > > -divh_sub_pc_type icc \
> > > > > -ppc_sub_pc_type ilu \
> > > > > << EOF
> > >
> >
>
>
More information about the petsc-users
mailing list