On Aug 24, 2012, at 09:06 , Brice Goglin <brice.gog...@inria.fr> wrote:
> hwloc_obj_t already has a "void *userdata" for this. But we cannot store > it in XML unless we know what it contains. Contiguous binary structures with a known size can be stored in a XML file. Instead of forcing the upper level to store their meaningful information as arrays of one of a few predefined types, let them deal with the content of the binary object, and focus on preserving the binary objects in the XML structure. > Exporting to XML is strictly required here since people want to add > values to the XML topology in a preliminary benchmarking programs, and > later read it back in their actual application (a charm++ scheduler). XDR exists for ensuring consistency. Let them store what they want not just arrays. george. > > Brice > > > > Le 24/08/2012 15:00, George Bosilca a écrit : >> If the goal is to allow extra storage for the users why not a simpler >> solution where all info keys are void* and the users manage their content? >> Having multiple keys will allow several layers of the software stack to save >> their own custom values without collisions, while the void* make a good >> generalization of the stored information. >> >> George. >> >> >> >> On Aug 24, 2012, at 7:09, Brice Goglin <brice.gog...@inria.fr> wrote: >> >>> Le 24/08/2012 11:46, Jeff Squyres a écrit : >>>> On Aug 24, 2012, at 4:26 AM, Brice Goglin wrote: >>>> >>>>> The question that remains is about the naming. Right now, it's >>>>> "valarray" but it don't like it. What it really means is "custom array >>>>> of float values". Maybe just "values", or "floats", or "custom floats", >>>>> or ... ? >>>> Random question: why floats and not doubles? >>> Likely because we have floats in the distance matrices but it didn't >>> matter for this use. >>> >>>> Another name suggestion: cached_floats (cached_doubles) >>> It's not really about caching, it's more about annotating the topology >>> by merging multiple inputs together (XML topology + benchmark outputs + >>> application info) inside the same XML file. >>> >>>> If the goal is to be able to store some data that will also show up in the >>>> XML (and text/gui output?) >>> I don't plan to display any of this to lstopo. >>> >>>> , why not make the mechanism more general? E.g., the values array should >>>> be a union, with an enum indicating its type, and support a small number >>>> of intrinsic types: float (or double), string, int (and/or long?). >>>> >>> I thought about that but I wasn't sure it was worth doing it. When you >>> say type, are you talking about the type that appears in the array of >>> values, or about the global annotation type? >>> >>> I though about doing this >>> >>> struct values { >>> char *name; >>> type /* FLOATS or something else in the future */ >>> union { >>> floats { >>> unsigned nr; >>> unsigned *indexes; >>> floats *values; >>> }; >>> }; >>> }; >>> >>> This is vague enough to support other kinds of annotations (even if I >>> don't expect many additions). Ideally, we would merge the "info" >>> attribute into this, but it would break the ABI (because of the >>> get_info_by_name() inline function). >>> >>> You're talking about this instead? >>> >>> struct values { >>> char *name; >>> type /* DOUBLE or ULLONG */ >>> unsigned nr; >>> unsigned * indexes; >>> void * values; /* sizeof(type) * nr */ >>> }; >>> >>> This one is easy to implement. Not sure if we would want >>> float/double/int/long/ulong/llong/... or only double/ullong. I just need >>> something clear enough for importing/exporting as string in the XML output. >>> >>> String is really needed since we have info attributes. It's not an >>> array, but I don't think it matters much. >>> >>> Brice >>> >>> _______________________________________________ >>> hwloc-devel mailing list >>> hwloc-de...@open-mpi.org >>> http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-devel >> _______________________________________________ >> hwloc-devel mailing list >> hwloc-de...@open-mpi.org >> http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-devel > > _______________________________________________ > hwloc-devel mailing list > hwloc-de...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-devel