From 4beae6603b9142aebcd75c1f981ee098ad9f9343 Mon Sep 17 00:00:00 2001 From: Artem Date: Wed, 22 Feb 2017 23:28:12 +0100 Subject: [PATCH] Docs and shared code updated --- README.md | 2 +- include/representants.hpp | 2 ++ shared/cnl_header_reader.hpp | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 412a590..5baf989 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ the risk respectively. See the [paper](http://arxiv.org/abs/1202.0425) for the m If the node base of the specified files is different (for example you decided to take the ground-truth clustering as a subset of the top K largest clusters) then it can be synchronized using the `-s` option. I.e. the nodes not present in the ground-truth clusters (communities) will be removed (also as the empty resulting clusters). The exception is thrown if the synchronization is not possible (in case the node base was not just reduced, rather it was totally different). # Related Projects -- [xmeasures](https://github.com/eXascaleInfolab/xmeasures) - Extrinsic clustering measures evaluation for the multi-resolution clustering with overlaps (covers): F1_gwah and NMI_om. +- [xmeasures](https://github.com/eXascaleInfolab/xmeasures) - Extrinsic clustering measures evaluation for the multi-resolution clustering with overlaps (covers): F1_gm and NMI (compatible to the standard NMI when applied to the single resolution non-overlapping collections of clusters). - [OvpNMI](https://github.com/eXascaleInfolab/OvpNMI) - Another method of the NMI evaluation for the overlapping clusters (communities) that is not compatible with the standard NMI value unlike GenConvNMI, but it is much faster and yields exact results unlike probabilistic results with some variance in GenConvNMI. - [resmerge](https://github.com/eXascaleInfolab/resmerge) - Resolution levels clustering merger with filtering. Flattens hierarchy/list of multiple resolutions levels (clusterings) into the single flat clustering with clusters on various resolution levels synchronizing the node base. - [ExecTime](https://bitbucket.org/lumais/exectime/) - A lightweight resource consumption profiler. diff --git a/include/representants.hpp b/include/representants.hpp index 7fe98e5..c069a3a 100644 --- a/include/representants.hpp +++ b/include/representants.hpp @@ -19,6 +19,8 @@ class representant_t { constexpr static size_t hashlen = 3*2; // In items (size_t): num, sum, sum2 + // ATTENTION: sizeof key should be >= sizeof hash array type to avoid trash padding + // on memory alignment size_t key; // Required if used in the unordered containers size_t hash[hashlen]; public: diff --git a/shared/cnl_header_reader.hpp b/shared/cnl_header_reader.hpp index 4869f63..47d7310 100644 --- a/shared/cnl_header_reader.hpp +++ b/shared/cnl_header_reader.hpp @@ -111,7 +111,8 @@ bool estimateSizes(size_t& ndsnum, size_t& clsnum, size_t cmsbytes, float member if(clsnum && !ndsnum) { // Typically the number of nodes is at least square of the number of clusters - ndsnum = clsnum * clsnum / membership; + // Note: optimistic estimate to not overuse the memory + ndsnum = 2 * clsnum; // clsnum * clsnum / membership; return true; }