Automat do detekcji błędów

Wzrastająca popularność procesorów wielordzeniowych powoduje, że oprogramowanie Coverity Thread Analyzer może być bardzo atrakcyjną ofertą dla programistów.

Wzrastająca popularność procesorów wielordzeniowych powoduje, że oprogramowanie Coverity Thread Analyzer może być bardzo atrakcyjną ofertą dla programistów.

Nowe narzędzie umożliwiające testowanie działania aplikacji wielowątkowych i tworzenie bezpiecznego kodu zaprezentowała ostatnio firma Coverity. Jest to producent specjalizujący się w tworzeniu narzędzi umożliwiających automatyczne wykrywanie błędów w kodzie oprogramowania budowanego przy wykorzystaniu języków C/C++ i Java. Najnowszy jej produkt to Coverity Thread Analyzer for Java określany jako "narzędzie do dynamicznej analizy działania aplikacji wielowątkowych". Coverity Thread Analyzer współpracuje z Sun JDK 1.5, IBM JVM 1.5 i BEA Jrockit 5. Przedstawiciele firmy nie ujawnili na razie, ile kosztuje licencja na to oprogramowanie.

Jak twierdzą przedstawiciele firmy, Coverity Thread Analyzer umożliwia zautomatyzowaną detekcję błędów, które mogą spowodować uszkodzenie danych lub błędne działanie programu, na przykład wskutek pojawienia się trudnych do przewidzenia konfliktów w pracy współbieżnej. Według nich, unikalną cechą tego narzędzia jest możliwość wykrywania nie tylko problemów w ograniczonym środowisku testowym, ale również tych, które mogą się później pojawić w systemach produkcyjnych. Coverity Thread Analyzer może też zostać wykorzystany do redukcji ryzyka awarii przy migracji kodu aplikacji jednowątkowych do środowisk przetwarzania wieloprocesorowego.

Jak wynika z dotychczasowych doświadczeń, skomplikowane aplikacje wykorzystujące przetwarzanie równoległe często przez bardzo długi czas działają bez zarzutu, a błędy kodu pojawiają się dopiero w wypadku, gdy nastąpi sytuacja nietypowa. Coverity CTO, Ben Chelf twierdzi, że praktycznym, wziętym z życia przykładem takiej sytuacji była wielka awaria zasilania w USA w 2003 roku, gdy system kontroli i zarządzania dostawami energii uległ awarii, mimo że wcześniej działał bez zarzutu przez około 3 miliony godzin.

Wraz z masową popularyzacją procesorów wielordzeniowych coraz większego znaczenia nabierają nie tylko umiejętności i wiedza programistów dotyczące zasad tworzenia aplikacji wielowątkowych, które są w stanie wykorzystać moc przetwarzania nowych generacji układów, ale również dostępność odpowiednich narzędzi wspomagających ich pracę.

Jak dotąd, zarówno tego typu umiejętności, jak i oferta narzędzi należą do towarów deficytowych. I to właśnie jest obecnie największą barierą praktycznego wzrostu wydajności systemów komputerowych, co przyznają nawet producenci procesorów, którzy nie widzą jednak innego wyjścia z sytuacji i planują wprowadzenie na rynek masowy kolejnych wersji układów już nie 2- lub 4-rdzeniowych, ale zawierających 8 lub nawet 12 zintegrowanych jednostek CPU. Dla producentów serwerów, zwłaszcza modeli korporacyjnych nie jest to problem, ale w wypadku małych serwerów, komputerów PC lub notebooków, ich użytkownicy mogą wkrótce poczuć się zawiedzeni, że 12-rdzeniowy układ w porównaniu np. do 2-rdzeniowego nie daje oczekiwanego wzrostu wydajności przy uruchamianiu aplikacji. A to może istotnie osłabić popyt na nowy sprzęt.

Transformacja od modeli programowania aplikacji dla procesorów jednordzeniowych do nowych technik pozwalających na wykorzystanie przetwarzania wielowątkowego oraz elastycznego dopasowywania programu do liczby jednostek CPU, nabiera krytycznego znaczenia dla rozwoju rynku IT.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200