Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
    Начать продвижение сайта
  • Реализация шаблонов и модельБРМО (типы данных)






     

    Пара м етризованные функции м ожно использовать с MPI-интерфейсо м д ля обработки ситуаций, в которых все процессы выполняют одинаковый код, но работают с различны м и типа м и данных. Так, определив значение TaskRank процесса, м ы м о-жем распознать, с каки м и данны м и и данны м и какого типа должен работать процесс. В листинге 9.2 показано, как реализовать различные задачи д ля различных рангов.

    //Листинг 9.2. Использование шаблонных функций для // определения «фронта работ» МР1-задач

    int main(int argc, char *argv[]) {

    //...

    int Tag = 2; int WorldSize; int TaskRank; MPI_Status Status; MPI_Init(& argc, & argv), -

    MPI_Comm_rank (MPI_COMM_WORLD, & TaskRank); MPI_Comm_size (MPI_COMM_WORLD, & WorldSize); //...

    switch(TaskRank) {

    case 1: multiplies< double> (3.2, 4.6); break;

    case 2: multiplies< complex> (X, Y)

    break; //case n:

    //...

    }

    }

    Поскольку не существует двух задач с одинаковым ранго м, все ветви в инструкции case листинга 9.2 будут выполнены различны м и MPI-задача м и. Кро м е того, такой тип параметризации м ожно распространить на контейнерные аргу м енты шаблонных функций. Это позволит передавать одной и той же шаблонной функции различные контейнеры объектов, содержащие различные типы объектов. Напри м ер, в листинге 9.3 показана обоб щ енная шаблоннал функция search ().

    // Листинг 9.3. Использование контейнерных шаблонов в // качестве аргументов шаблонных функций

    template< T> bool search(T Key, graph< T>) {

    //.. -

    locate(Key) //...

    }

    //...

    MPI_Comm_rank(MPI_COMM_WORLD, & TaskRank); //...

    switch(TaskRank) {

    case 1: {

    graph< string> bullion;

    search< string> search(«gold», bullion);

    }

    break; case 2: {

    graph< complex> Coordinates; search< complex> ((X, Y), Coordinates);

    }

    Break;

    //...

    В листин г е 9.3 процесс, у которого TaskRank = 1, выполняет поиск в графе (graph) сименем bullion, содержа щ е м string< ^beKTbi, а процесс, у которого TaskRank = 2, выполняет поиск в графе Coordinates, содержа щ е м ко м плексные числа. Мы не должны из м енять функцию search (), чтобы приспособиться к други м дан н ы м или типам данных, да и MPI-програм м а в это м случае и м еет более простую структуру, поскольку м ы м оже м м ногократно использовать шаблонную функцию поиска (search) для прос м отра контейнера graph, содержа щ его данные любого типа. Использование шаблонов значительно упро щ ает 5РМГ> програ мм ирование. Че м более об щ ей м ы делае м MPI-задачу, те м более гибкой она становится. Кро м е того, если некоторый шаблон прошел этап отладки и тестирования, надежность всех построенных на его основе МР1-задач м ожно считать довольно высокой, поскольку все они выполняют одинаковый код.

     






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.