Разделение строк на несколько процессов - PullRequest
0 голосов
/ 27 февраля 2012

Я пытаюсь сопоставить строки в нескольких процессах. Прямо сейчас я пытаюсь выяснить, как разбить строку на более мелкие кусочки для отправки различным процессам.

Вот метод, который я использую прямо сейчас (не отправка в процессы, просто вызов функции сопоставления для сегментов строки для моделирования):

for (i = 1; i < numProcesses+1; i++){
    int charsToSend;
    int k = len/numProcesses;
    charsToSend = k + sublen;
    char* temp[100];
    strncpy(temp, base + ((i*k)-k), charsToSend);
    temp[charsToSend] = '\0';
    int m = matches(temp, sub);
    printf("Matches for p%d : %d\n", i, m);

}

Что он делает, это решает, на сколько символов разбить строку в зависимости от количества процессов. Затем он решает отправить это число плюс длину подстроки, чтобы, если совпадение пересекает линию разреза, оно все еще считалось.

Проблема, с которой я столкнулся, заключается в том, что, поскольку я перекрываю длину подстроки для каждого процесса, если в этом перекрытии есть точное совпадение, он учитывается дважды.

Любые идеи о том, как лучше разбить строку, чтобы у меня не было нескольких подсчетов подстроки на границе?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...