Wykorzystaj technologie wielowątkowe LabVIEW 8.6 w systemach pomiarowych i sterujących

| Prezentacje firmowe Artykuły

„Świat jest równoległy. Ludzie żyją równolegle. Komputery wykonują obliczenia równolegle. Dlaczego mamy ograniczać się do stosowania technik programowania sekwencyjnego?” - zapytał kiedyś uznawany za twórcę LabVIEW Jeff Kodosky. Obecnie LabVIEW oferuje funkcjonalność pozwalającą na tworzenie wielowątkowych i działających równolegle systemów pomiarowych i sterujących. Sposoby na uzyskiwanie wiążącego się z tym zwiększania ich wydajności i redukowania kosztów wdrożeń opisano w artykule.

Wykorzystaj technologie wielowątkowe LabVIEW 8.6 w systemach pomiarowych i sterujących

Ponieważ programowanie tekstowe cechuje z natury sekwencyjność wykonywania kodu, tworzenie aplikacji wielowątkowych, w których zachodzi konieczność zrównoleglenia wykonywanych obliczeń, jest trudne. Z tych powodów LabVIEW jest środowiskiem programistycznym, które jest o wiele lepiej niż np. język C przystosowane do tworzenia systemów działających równolegle. Wykorzystuje ono graficzny język programowania, co znacznie ułatwia tworzenie omawianych systemów i pozwala na ich wizualizację. Aplikacje, gdzie procesy wykonywane są równolegle, tworzone są wręcz automatycznie podczas programowania, gdyż tworzony w LabVIEW kod zawiera oddzielne wątki dla wykonywanych równolegle sekcji programu. Pozwala to projektantowi skupić się na rozwijaniu systemu, a nie zajmować problemami związanymi z jego niskopoziomową implementacją.

Rys. 1. Porównanie wielowątkowości w LabVIEW i tekstowych językach programowania
Nowa wersja LabVIEW 8.6 bazuje na równoległej naturze przetwarzania danych, oferując narzędzia pozwalające na wykorzystanie w tworzonych aplikacjach zalet procesorów wielordzeniowych i układów FPGA. Korzystając z nich, inżynierowie mogą tworzyć wielowątkowe systemy testowania i sterujące, jednocześnie redukując całkowite koszty wdrożeń.

WYKONUJ OBLICZENIA WIELORDZENIOWE

W niedawno opublikowanym rankingu (top500.org) dotyczącym 500 superkomputerów dysponujących najwiekszą na świecie mocą obliczeniową, aż 77% z nich bazuje na wykorzystaniu klastrów procesorów wielordzeniowych. Tymczasem w 2007 roku było to jedynie 22%. Komputery te wykorzystują często takie same procesory, jak te dostępne we współczesnych PC, chociaż do ich obsługi stosowane jest wyspecjalizowane oprogramowanie. Również LabVIEW projektowany był z myślą o wykorzystaniu przetwarzania równoległego i od ponad 10 lat wspierał wykorzystanie wielowątkowości.

Rys. 2. Różne funkcje przetwarzania obrazu w module NI Vision Development mogą być automatycznie wykonywane w kilku rdzeniach
Nowa wersja LabVIEW 8.6 rozszerza możliwości użycia procesorów wielordzeniowych i znacznie zwiększa wydajność przetwarzania danych w tworzonych systemach. Ponad 1200 funkcji w bibliotekach matematycznych i przetwarzania sygnałów zostało zoptymalizowanych do wykorzystania w systemach z procesorami wielordzeniowymi. Przykładowa aplikacja testowa, w której wykorzystano system przetwarzania sygnałów, wskazała na ponad 6,6-krotne zwiększenie jego wydajności przy korzystaniu z procesora ośmiordzeniowego zamiast układu jednordzeniowego. Z kolei wykorzystując moduł projektowania i symulacji układów sterowania (LabVIEW 8.6 Control Design and Simulation Module) w systemach z procesorami wielordzeniowymi, można wykonywać dynamiczne symulacje pracy systemu do pięciu razy szybciej.

Zmiany zaszły również w module NI Vision Development, gdzie wiele funkcji przetwarzania obrazu zostało zoptymalizowanych do automatycznej dystrybucji danych do wielu rdzeni procesora. Przykładowo funkcja splotu obrazu wykonywana może być do 15 razy szybciej z wykorzystaniem systemu z procesorem dwurdzeniowym. Pozwala to na uzyskanie w projektowanych systemach pomiarowych i sterowania wydajności oraz funkcjonalności dostępnych dotychczas tylko w superkomputerach.

SKRÓĆ CZAS PROJEKTOWANIA SYSTEMÓW Z FPGA

Rys. 3. LabVIEW 8.6 jest zaawansowaną platformą umożliwiającą programowanie układów FPGA
FPGA to układy pozwalające na największe ze wszystkich dostępnych obecnie technologii zrównoleglenie obliczeń. Pozwalają one na tworzenie układów pomiarowych i sterowania o wysokiej wydajności i niezawodności. Pomimo tych zalet wielu inżynierów nie wykorzystuje ich z powodu relatywnie dużego stopnia komplikacji związanego z tworzeniem systemów z FPGA. Nawet osoby specjalizujące się w tego typu projektach mogą mieć nieraz problemy aplikacyjne - np. z implementacją operacji stałoprzecinkowych.

LabVIEW umożliwia radzenie sobie z powyższymi wyzwaniami poprzez wykorzystanie m.in. interaktywnych interfejsów użytkownika (UI), bardzo obszernych bibliotek funkcji do analizy oraz możliwość szybkiego prototypowania sprzętowego systemów. Najnowsza wersja LabVIEW 8.6 pozwala w szczególności rozwiązywać poniżej opisane problemy:

  1. Użycie tradycyjnego oprogramowania do rozwoju układów FPGA wymaga znajomość projektowania układów cyfrowych - w przypadku LabVIEW wykorzystuje się intuicyjny w obsłudze moduł LabVIEW FPGA, który pozwala na programowanie omawianych układów bez konieczności korzystania z języków opisu sprzętu (HDL).
  2. Programowanie FPGA wymagać może czasochłonnych procesów kompilacji i walidacji przed uruchomieniem - LabVIEW 8.6 znacznie ułatwia rozwój aplikacji z FPGA i debugowanie kodu poprzez symulowanie pracy układów FPGA z wykorzystaniem posiadanego komputera (bez kompilowania projektu). Dodatkowo możliwe jest testowanie (testbench) układu FPGA poprzez symulowanie sygnałów wejść/wyjść oraz sprawdzenie projektu przed kompilacją. Wykorzystując moduły NI Compact- RIO, użytkownik uzyskuje również dostęp do nowej funkcji w LabVIEW 8.6, którą jest tryb skanowania (Scan Mode) CompactRIO. Umożliwia on dostęp do wejść/wyjść w czasie rzeczywistym bez konieczności programowania FPGA.
  3. Istnieją trudności w przejściu od prototypu programowego do implementacji sprzętowej - ponieważ LabVIEW pozwala na wykonywanie programu zarówno korzystając z systemu komputerowego, jak i układu FPGA, przejście pomiędzy tymi technologiami jest o wiele prostsze i nie wymaga wprowadzania zmian w projekcie. Do cech ułatwiających pracę należy również wsparcie dla liczb stałoprzecinkowych oraz dostępność gotowych modułów IP (Intellectual Property), takich jak np. szybka transformata Fouriera (FFT).
  4. Uaktualnienie projektu, tak aby wykorzystywał on najnowsze układy FPGA, może być czasochłonne i kosztowne - LabVIEW zapewnia ochronę inwestycji w projekt poprzez jego tworzenie na odpowiednim poziomie abstrakcji, co umożliwia w przyszłości korzystanie z nowych platform sprzętowych. Przykładami tych ostatnich są urządzenia z serii NI R, gdzie wykorzystuje się układy Xilinx Virtex-5, oraz NI Single-Board RIO, które są jednopłytkowymi (nieobudowanymi) platformami rekonfi gurowalnych wejść/wyjść.

Wydarzenia na świecie dzieją się równolegle, a inżynierowie oraz naukowcy muszą mieć możliwość tworzenia odpowiadających temu rozwiązań pomiarowych i systemów automatyzacji. Wykorzystując procesory wielordzeniowe, układy FPGA, moduły Wi-Fi DAQ oraz LabVIEW 8.6, mogą oni korzystać z tego, co było zawsze częścią graficznego środowiska projektowego - możliwości łatwego użycia najnowszych technologii, nieważne, jak bardzo byłyby one same skomplikowane.

National Instruments Poland Sp. z o.o.

Salzburg Center, ul. Grójecka 5

02-025 Warszawa

Bezpłatna infolinia: 00 800 361 1235

tel. 022 328 90 10, faks 022 331 96 40

ni.poland@ni.com

www.ni.com/poland