llnl / llnl/UnifyFS

Provide way to enable memcpy variants for testing

Open
#56 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
122
Forks
34
PR merge metrics
No merged PRs in 30d

Description

Commit 75543ec removed the commented out function `unifycr_memcpy()` shown below. @adammoody [commented](https://github.com/LLNL/UnifyCR/pull/51#issuecomment-353477379) in #51 that it was there to facilitate performance testing of different memcpy variants with different compilers and architectures. If this is still needed we should provide either a build-time or run-time method to enable such variants.

```c
/* simple memcpy which compilers should be able to vectorize
* from: http://software.intel.com/en-us/articles/memcpy-performance/
* icc -restrict -O3 ... */
static inline void *unifycr_memcpy(void *restrict b, const void *restrict a,
size_t n)
{
char *s1 = b;
const char *s2 = a;
for (; 0 < n; --n) {
*s1++ = *s2++;
}
return b;
}
```

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing commit 75543ec and the discussion in pull request #51 to understand why unifycr_memcpy() was removed and which variants need testing. Identify whether a build-time or run-time selection method fits the stated compiler and architecture testing goal; done means the variants can be enabled and compared without restoring an undocumented workaround.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
performance, testing-qa
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.