New feature/enhancement
Description:
Chunked datasets are handled poorly in several circumstances involving
certain selections and chunks that are too large for the chunk cache and/or
chunks with filters, causing the chunk to be read from disk multiple times.
Solution:
Rearrange raw data I/O infrastructure to handle chunked datasets in a much
more friendly way by creating a selection in memory and on disk for each chunk
in a chunked dataset and performing all of the I/O on that chunk at one time.
There are still some scalability (the current code attempts to
create a selection for all the chunks in the dataset, instead of just the
chunks that are accessed, requiring portions of the istore.c and fillval.c
tests to be commented out) and performance issues, but checking this in will
allow the changes to be tested by a much wider audience while I address the
remaining issues.
Platforms tested:
h5committested, FreeBSD 4.8 (sleipnir) serial & parallel, Linux 2.4 (eirene)
89 lines
4.3 KiB
Makefile
89 lines
4.3 KiB
Makefile
##
|
|
## Copyright by the Board of Trustees of the University of Illinois.
|
|
## All rights reserved.
|
|
##
|
|
## This file is part of HDF5. The full HDF5 copyright notice, including
|
|
## terms governing use, modification, and redistribution, is contained in
|
|
## the files COPYING and Copyright.html. COPYING can be found at the root
|
|
## of the source code distribution tree; Copyright.html can be found at the
|
|
## root level of an installed copy of the electronic HDF5 document set and
|
|
## is linked from the top-level documents page. It can also be found at
|
|
## http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have
|
|
## access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu.
|
|
##
|
|
## HDF5 Library Makefile(.in)
|
|
##
|
|
top_srcdir=@top_srcdir@
|
|
top_builddir=..
|
|
srcdir=@srcdir@
|
|
@COMMENCE@
|
|
|
|
TRACE=perl $(top_srcdir)/bin/trace
|
|
|
|
## Add `-I.' to the C preprocessor flags.
|
|
CPPFLAGS=-I. -I@srcdir@ @CPPFLAGS@
|
|
|
|
## This is our main target, but also remove the settings file when cleaning.
|
|
LIB=libhdf5.la
|
|
CLEAN=libhdf5.settings
|
|
|
|
## Source and object files for the library (lexicographically)...
|
|
LIB_SRC=H5.c H5A.c H5AC.c H5B.c H5D.c H5Dio.c H5E.c H5F.c H5Fcontig.c \
|
|
H5Fcompact.c H5Fistore.c H5Fseq.c H5FD.c H5FDcore.c \
|
|
H5FDfamily.c H5FDfphdf5.c H5FDgass.c H5FDlog.c H5FDmpio.c \
|
|
H5FDmpiposix.c H5FDmulti.c H5FDsec2.c H5FDsrb.c H5FDstdio.c \
|
|
H5FDstream.c H5FL.c H5FO.c H5FP.c H5FPclient.c H5FPserver.c H5FS.c \
|
|
H5G.c H5Gent.c H5Gnode.c H5Gstab.c H5HG.c H5HL.c H5HP.c H5I.c H5MF.c \
|
|
H5MM.c H5O.c H5Oattr.c H5Obogus.c H5Ocont.c H5Odtype.c H5Oefl.c \
|
|
H5Ofill.c H5Olayout.c H5Omtime.c H5Oname.c H5Onull.c H5Opline.c \
|
|
H5Osdspace.c H5Oshared.c H5Ostab.c H5P.c H5Pdcpl.c H5Pdxpl.c \
|
|
H5Pfapl.c H5Pfcpl.c H5R.c H5RS.c H5S.c H5Sall.c H5Shyper.c H5Smpio.c \
|
|
H5Snone.c H5Spoint.c H5Sselect.c H5ST.c H5T.c H5Tarray.c H5Tbit.c \
|
|
H5Tcommit.c H5Tcompound.c H5Tconv.c H5Tcset.c H5Tenum.c H5Tfields.c \
|
|
H5Tfixed.c H5Tfloat.c H5Tinit.c H5Tnative.c H5Toffset.c H5Topaque.c \
|
|
H5Torder.c H5Tpad.c H5Tprecis.c H5Tstrpad.c H5Tvlen.c H5TB.c H5TS.c \
|
|
H5V.c H5Z.c H5Zdeflate.c H5Zfletcher32.c H5Zshuffle.c H5Zszip.c
|
|
|
|
LIB_OBJ=$(LIB_SRC:.c=.lo)
|
|
|
|
## Temporary files
|
|
MOSTLYCLEAN=H5detect.o H5detect.lo H5detect H5Tinit.o H5Tinit.lo H5Tinit.c
|
|
|
|
## Public header files (to be installed)...
|
|
PUB_HDR=H5public.h H5Apublic.h H5ACpublic.h H5Bpublic.h H5Dpublic.h \
|
|
H5Epublic.h H5Fpublic.h H5FDpublic.h H5FDcore.h H5FDfamily.h \
|
|
H5FDfphdf5.h H5FDgass.h H5FDlog.h H5FDmpio.h H5FDmpiposix.h \
|
|
H5FDmulti.h H5FDsec2.h H5FDsrb.h H5FDstdio.h H5FDstream.h \
|
|
H5FPpublic.h H5Gpublic.h H5HGpublic.h H5HLpublic.h H5Ipublic.h \
|
|
H5MMpublic.h H5Opublic.h H5Ppublic.h H5Rpublic.h H5Spublic.h \
|
|
H5Tpublic.h H5Zpublic.h H5pubconf.h hdf5.h H5api_adpt.h
|
|
|
|
## Other header files (not to be installed)...
|
|
PRIVATE_HDR=H5private.h H5Aprivate.h H5Apkg.h H5ACprivate.h H5Bprivate.h \
|
|
H5Dprivate.h H5Eprivate.h H5Fprivate.h H5FDprivate.h H5FLprivate.h \
|
|
H5FOprivate.h H5FPprivate.h H5FSprivate.h H5Gprivate.h H5Gpkg.h \
|
|
H5HGprivate.h H5HLprivate.h H5HPprivate.h H5Iprivate.h H5MFprivate.h \
|
|
H5MMprivate.h H5Oprivate.h H5Opkg.h H5Pprivate.h H5Ppkg.h \
|
|
H5Rprivate.h H5RSprivate.h H5Sprivate.h H5STprivate.h \
|
|
H5Tprivate.h H5TBprivate.h H5Tpkg.h H5TSprivate.h H5Vprivate.h \
|
|
H5Zprivate.h H5Zpkg.h H5config.h
|
|
|
|
## Number format detection
|
|
## The LD_LIBRARY_PATH setting is a klutch.
|
|
## Things should have been all set during H5detect making.
|
|
## Remove the generated .c file if errors occur unless HDF5_Make_Ignore
|
|
## is set to ignore the error.
|
|
H5Tinit.c: H5detect
|
|
LD_LIBRARY_PATH="$$LD_LIBRARY_PATH`echo $(LDFLAGS) | \
|
|
sed -e 's/-L/:/g' -e 's/ //g'`" \
|
|
$(RUNSERIAL) ./H5detect > H5Tinit.c || \
|
|
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
|
|
($(RM) $@ ; exit 1)
|
|
|
|
## no $(LIB) in the action below since that's being made now.
|
|
H5detect: H5detect.lo
|
|
@$(LT_LINK_EXE) $(CFLAGS) -o $@ H5detect.lo $(LDFLAGS) $(LIBS)
|
|
|
|
|
|
@CONCLUDE@
|