Так это и есть высокая плотность. Больше единиц оборудования в меньшем объеме (В С7000 16 серверов на 10 юнитов) и следовательно, больше энергопотребление в меньшем объеме.
Другое дело, что среднестатистические датацентры рассчитываются на малое энергопотребление, а не на высокую производительность оборудования, отсюда и лимиты в 10кВт на стойку.
Что по охлаждению, то воздухом можно снять 20-25кВт со стойки. Системами на подобие с водяной дверью порядка 40кВт, а водой до 400кВт (рекорд РСК).
Так что если Вы лимитированы питанием и/или охлаждением, то высокоплотные системы просто не для Ваших задач, а если Вам нужна высокая плотность, то Вас уже не заботят стандартные датацентры, а инженерная инфраструктура подгоняется под используемое оборудование.
В итоге в этом случае я дошел до реального break strict-aliasing rules.
Это действительно баг в коде boost::container::flat_map, но который на моем наборе компиляторов стрелял только в gcc 4.3.4.
https://github.com/boostorg/container/blob/develop/include/boost/container/flat_map.hpp#L61-L70
Функция force хотя бы работает, а вот force_copy сильно не всегда. Почему они написаны именно так я не знаю. В рассылке мне ответили только то, что да, это ломает strict-aliasing, но зачем так сделали — осталось без ответа.
Так что минус один баг в компиляторе, +1 баг в Бусте.
Но чтобы не было все так хорошо с компиляторами (и в моем списке осталось ровно 2 бага), вспомню еще один случай на компиляторе из RHEL7.0, когда при включении LTO он просто падал с segmentation fault на некотором коде :)
Вы перепутали право авторства (право на имя) и имущественные права на результаты интеллектуальной деятельности.
Право авторства неотчуждаемы, и в России, и в США. Те никто не может заявить, что это придумал он, а не реальный автор. Неотчуждаемость права авторства, кстати, не требует обязательного сообщения имени автора, по этому имен разработчиков Windows, да и любых продуктов из России Вы не найдете.
А все то, что Вы написали — это про имущественные права (грубо говоря кто деньги может зарабатывать на результате деятельности), которые очень часто, но неверно называют авторскими правами.
Нашел свободный день на исследование и обнаружил, что проблему в gcc 4.3.4 вызывает включение -fstrict-aliasing.
При этом, добавление -Wstrict-aliasing=1 (самый высокий уровень предупреждений) никаких релевантных предупреждений не дает (что при компиляции в gcc 4.3.4, что при использовании более новых версий). Точнее даже в коде, из которого собирается проблемный исполняемый файл и библиотеки предупреждений просто нет.
Более того, при использовании gcc версии 4.4.4 и новее никаких проблем с работой кода не наблюдается.
Так что ситуация понятнее не стала.
Интересно было бы еще запустить тесты на gcc 4.3.[5-6] и 4.4.[0-3], но я сходу не нашел старых дистрибутивов линуксов, где они есть по умолчанию, чтобы не пересобирать компиляторы самостоятельно.
Ну в общем это рабочая ситуация, не страшная ни для поставщика, ни для заказчика.
Сейчас контроль за расходованием бюджетных средств растет и нарушение сроков поставки или поставка не туда — это стало серьезным косяком. Да даже требования к формулировкам предмета договора ужесточили иначе казначейство просто ничего не оплатит.
А исправить его как минимум в указании места поставки не сложно. С точки зрения срока, если фактически нужно предоставить результат после даты Х, но только когда заказчик скажет вези, думаю тоже можно что-то придумать, но надо юристов подключать.
А это уже явно цена по запросу, без всяких прайсов.
Или индивидуальные скидки от прайса. Я не знаю, как различить эти две ситуации, но они обе возможны.
Да это даже не косяк. Пока не пришло время ставить прибор на корабль — он заказчикам не нужен. А когда нужен — то нужен не в офисе, а на судоремонтном заводе. Так что проще приборы напрямую на завод отправлять.
Это косяк в документах тогда на мой взгляд — плохо прописано куда и когда результат необходимо поставить. Если сказано в офис — то в офис, а если сразу на судоремонтный завод, то на него.
Тут писать можно много что, в том числе и прямую поставку от дверей производителя к дверям конечного пользователя, минуя офис непосредственного заказчика (знаю, что такая схема доставки материальных объектов использовалась и о проблемах я не слышал, если она конечно в договорах прописана).
2) Отсутствие публикации прайса отличается от отсутствии прайса вообще. В первом случае прайс в долларах (почему и не публикуется) и пересчитается в рубли на день запроса. Более того, вы получите варианты цены в зависимости от опций. Во втором — вам пришлют только сумму, без всяких обоснований.
Я не списывался на тему цены с PVS, но почему Вы думаете, что у них второй вариант, и нет внутренних прайсов?
Кроме того, есть еще и вендорские скидки для конкретных клиентов о механизмах вычислений которых никто публично не расскажет (а их уровень может быть существенный и начальные цены в торгах могут уже быть частично со скидкой).
Государство, конечно.
Тут Вы меня не поняли. Государство пишет ТЗ на свой заказ, а не на инструменты, с помощью которого заказ будет исполняться. А вот на эти нужные Вам инструменты ТЗ пишете уже Вы.
У нас не было проблем с регистрацией в бизнес-центре
Бизнес-центр и место массовой регистрации это все же разные вещи.
P.S. Из параллельной приватной дискуссии с господином Jef239 я выяснил, что у них действительно есть обоснованные опасения для хорошей перестраховки, но я бы не стал распространять это мнение на весь остальной рынок, в том числе на ту его часть, где есть бюджетные деньги.
> А мы — запаздываем с отгрузкой.
Ну те за вами реально косяк был, хотя и не совсем такой, который считали налоговики?
> Через тендеры. А если внимательно поискать, то увидим не только максимальную цену в 2.4 миллиона рублей, но и конечную цену тендера. С серверами — аналогично.
Только это индивидуальные цены для конкретного заказчика. Начальная максимальная цена контракта определяется по трем коммерческим предложениям, которые сюрприз сюрприз делаются по запросу заказчика, так как прайса нет.
И, я Вам больше скажу, по этим ценам данный софт/железо больше никто не купит. В следующий раз будут и другие начальные цены и другие конечные.
В связи с этим мой вопрос остается в силе — где общедоступные прайсы?
> А это уже означает проверку ФАС и уголовное дело за сговор.
Так сговор, как я понимаю, все же был?
А ФАС проверяет все тендеры, где нашлись недовольные «поставщики». И к счастью в моей практике пока еще ни один недовольный поставщик, которые не могли ни ТЗ соответствовать, ни ценой выиграть, ничего не получали.
> Вы сможете доказать прокуратуре, что при наличии бесплатного CppCheck надо платить за PVS-studio? Есть официальное государственные документы, что PVS-studio лучше? Именно официальные, а не просто мнения специалистов.
ТЗ кто пишет? Государство или Вы? Так при чем тут государственные документы?
Я не очень уверен, что это вообще придется доказывать.
> ну вот вам примеры уголовных дел,
И все они только купили софт?
> Теперь, надеюсь, понятно нежелание покупать по необъявленной цене у фирмы с уставным капиталов 10 тысяч рублей
А других на рынке нет.
> зарегистрированной в частной квартире?
Разве что это единственное, что можно в упрек поставить компании. Правда юр. адрес в квартире, куда лучше, чем в месте массовой регистрации ООО, где их никогда не было и концов не найти.
> до написания этого письма нужно знать, по каким ценам были продажи минимум 5 заказчикам
> В идеале — узнать официально, на фирменном бланке покупателей с реквизитами и печатями.
Вам такую информацию официально не даст никто.
Не официально, за пивом при разговоре старых друзей из разных компаний, может быть и скажут, но лет через пару после покупки…
> У нас много госконтрактов, соответственно может быть налоговая проверка. А покупка софта без прайса — с точки зрения налоговой, это откат. То есть с точки зрения налоговой мы не купили софт, а просто обналичили эти 25 миллионов.
А здесь Вы не просто заблуждаетесь, а нагло врете.
Если хотите опровергнуть, покажите мне актуальные прайсы, ну, хотя бы на ANSYS. Что, цена по запросу? Ой, а как же его бюджетные организации и госкомпании покупают? Или сразу после их налоговая за обналичку того, и в тюрьму?
Ну или давайте хотя бы сервера купим, раз на ANSYS прайсов нет. Что?! И тут цены по запросу?
Да ну его, вон в соседнем магазе счеты купим и пусть эти инженеры на них считают. Работали же как-то 50 лет назад без всего этого…
По словам разработчиков Эльбруса у них полностью свой бэкенд компилятора, а фронтенд от компании EDG (к слову точно такой же фронтенд использует компилятор Intel, но его почему то форком GCC никто не называет).
Я в своей практике общения с g++ сталкивался с двумя глобальными проблемами из-за -O3.
Первая — gcc 4.4.4 на некотором коде с некоторым набором параметров компилятора просто падал с core dump. Тогда оптимизация была просто понижена до -O0 (чтобы вообще не разбираться), благо не компилировался код вспомогательного приложения и разбираться, что не нравится компилятору особого смысла не было — и так все работало быстро.
Вторая проблема была с gcc 4.3.4. В приложении использовался Boost и его контейнеры из Boost.Container. Наиболее яркое и запомнившееся проявление проблемы было, когда был boost::container::vector с данными, если у него посмотреть size(), то там одно значение (неправильное или 0), если посчитать end()-begin() — другое значение (почти всегда правильное), если отладчиком посмотреть в структуру, где оно хранит данные, то в памяти значения всегда верные.
Ни в одной другой версии компилятора (новее) воспроизвести не удалось. В gcc 4.3.4 Нормально работало только с оптимизацией -O1. Я бы еще понял, если бы код был многопоточный, но код был однопоточным и по сути логически один и тот же код давал то правильные данные, то неправильные.
Если у Вас есть идея, как можно подебажить второй случай, то я с радостью ее выслушаю, так как мне было бы интересно попытаться докопаться до причины такого поведения компилятора.
Кажется, Вам немедленно нужно обратиться в компанию ВСМПО-АВИСМА для закупки титановых защитных щитков во избежание катастрофы.
А аргументация, базирующаяся на никнейме собеседника — это пожалуй даже оригинальная вещь. +1 Вам за изобретательность.
Резюмируя вышесказанное я вынужден процитировать господина mayorovp:
> Ваше мнение было очень ценным для нас. Только, кажется, вы забыли его аргументировать.
P.S. В тред призывается к.ф.-м.н. kbtsiberkin. Может быть он, как практикующий теорфизик, скажет по существу что-нибудь еще.
> Контекст статьи «использования для высокопроизводительных математических вычислений». И именно в этом контексте фортран никого интересовать не может.
Вот именно в этой области фортран дико популярен и конкурирует с C&C++ нередко выигрывая у них.
А приведенные выше MatLab, Python, та же Mathematica — это чаще всего лишь инструменты прототипирования или текущих расчетов над небольшими моделями.
Справедливости ради MatLab поддерживает параллельные вычисления на суперкомпьютерах, но на практике я не видел чтобы это активно применялось, хотя раз поддерживает, то наверняка не просто так…
> 1. Для повышения производительности часто используется выравнивание строк.
Или не используется, если некоторые алгоритмы можно преобразовать так, чтобы вместо перебора двух индексов перебирать один, проходя по всей матрице последовательно (фактически построчно).
В этом случае для векторизации выравнивание отдельных строк не требуется, так как конец одной строки и начало следующей можно обрабатывать в одной векторной инструкции. Да и для компилятора такой код векторизовать будет проще, чем перебор двух индексов.
Спасибо!
Но там ссылка на письмо от 2005 года, те еще до вступления в силу новой 4 части ГК (которая сейчас действует), в комментариях это как фактор риска описывают.
Не видели ли Вы каких либо более новых разъяснений/комментариев на этот счет?
А есть ли какие-либо разъяснения от налоговой и/или других органов на эту тему? (Только может быть не продажа, а лицензирование — заключение лицензионных договоров?) И что делать с налогами, которые сверху (взносы в ПФР и ФОМС), должен ли их платить лицензиат?
Почему выкидывать? Нагрузка на сервер, это один из многих параметров, которые необходимо учитывать.
Вот к примеру у меня есть система, в которой при нагрузке более 60% latency начинает взлетать чуть ли не экспоненциально. К счастью в этой системе это не критично, но неприятно, так как в худшем случае ждать запуска задачи иногда приходится в несколько раз дольше, чем она будет выполняться (характер нагрузки — пакетный).
Недавно на хабре в комментариях видел пример, где система работала под нагрузкой процентов в 90, но там поток задач был равномерен, одинаков и известен, по этому задержки были приемлемыми и не взлетали в небеса.
Другая сторона медали — резервирование.
Если у Вас есть кластер из 2 нод, то загружать каждую более чем на 50% категорически нельзя, ибо в случае выхода из строя одной из них вторая умрет от перегрузки.
Если ноды 3, то предел загрузки каждой из них — 2/3, если мы хотим пережить отказ одной ноды без падения.
Третья сторона — рост системы. Новое оборудование прирастает обычно дискретно, а нагрузка может увеличится непредсказуемо и нужно держать оперативный резерв для прохождения пиков или просто роста аудитории.
И это далеко не все стороны, которые могут учитываться в реальной задаче и зависеть от загрузки оборудования.
Если сложить все это вместе, то вполне может оказаться, что в какой-то системе эти 30% загрузки — это и есть максимальная эффективность, при которой можно оказывать качественный сервис и еще одна доля процента экономии приведет к краху.
Другое дело, что среднестатистические датацентры рассчитываются на малое энергопотребление, а не на высокую производительность оборудования, отсюда и лимиты в 10кВт на стойку.
Что по охлаждению, то воздухом можно снять 20-25кВт со стойки. Системами на подобие с водяной дверью порядка 40кВт, а водой до 400кВт (рекорд РСК).
Так что если Вы лимитированы питанием и/или охлаждением, то высокоплотные системы просто не для Ваших задач, а если Вам нужна высокая плотность, то Вас уже не заботят стандартные датацентры, а инженерная инфраструктура подгоняется под используемое оборудование.
Segmentation fault процесса компилятора я все же никак не могу списать на ошибку в своем коде, а не в компиляторе и -O3 :)
Вопрос, зачем так сделали в Boost пока так и остается без ответа в рассылке и багтрекере.
Это действительно баг в коде boost::container::flat_map, но который на моем наборе компиляторов стрелял только в gcc 4.3.4.
https://github.com/boostorg/container/blob/develop/include/boost/container/flat_map.hpp#L61-L70
Функция force хотя бы работает, а вот force_copy сильно не всегда. Почему они написаны именно так я не знаю. В рассылке мне ответили только то, что да, это ломает strict-aliasing, но зачем так сделали — осталось без ответа.
Так что минус один баг в компиляторе, +1 баг в Бусте.
Но чтобы не было все так хорошо с компиляторами (и в моем списке осталось ровно 2 бага), вспомню еще один случай на компиляторе из RHEL7.0, когда при включении LTO он просто падал с segmentation fault на некотором коде :)
Право авторства неотчуждаемы, и в России, и в США. Те никто не может заявить, что это придумал он, а не реальный автор. Неотчуждаемость права авторства, кстати, не требует обязательного сообщения имени автора, по этому имен разработчиков Windows, да и любых продуктов из России Вы не найдете.
А все то, что Вы написали — это про имущественные права (грубо говоря кто деньги может зарабатывать на результате деятельности), которые очень часто, но неверно называют авторскими правами.
При этом, добавление -Wstrict-aliasing=1 (самый высокий уровень предупреждений) никаких релевантных предупреждений не дает (что при компиляции в gcc 4.3.4, что при использовании более новых версий). Точнее даже в коде, из которого собирается проблемный исполняемый файл и библиотеки предупреждений просто нет.
Более того, при использовании gcc версии 4.4.4 и новее никаких проблем с работой кода не наблюдается.
Так что ситуация понятнее не стала.
Интересно было бы еще запустить тесты на gcc 4.3.[5-6] и 4.4.[0-3], но я сходу не нашел старых дистрибутивов линуксов, где они есть по умолчанию, чтобы не пересобирать компиляторы самостоятельно.
Сейчас контроль за расходованием бюджетных средств растет и нарушение сроков поставки или поставка не туда — это стало серьезным косяком. Да даже требования к формулировкам предмета договора ужесточили иначе казначейство просто ничего не оплатит.
А исправить его как минимум в указании места поставки не сложно. С точки зрения срока, если фактически нужно предоставить результат после даты Х, но только когда заказчик скажет вези, думаю тоже можно что-то придумать, но надо юристов подключать.
Или индивидуальные скидки от прайса. Я не знаю, как различить эти две ситуации, но они обе возможны.
Это косяк в документах тогда на мой взгляд — плохо прописано куда и когда результат необходимо поставить. Если сказано в офис — то в офис, а если сразу на судоремонтный завод, то на него.
Тут писать можно много что, в том числе и прямую поставку от дверей производителя к дверям конечного пользователя, минуя офис непосредственного заказчика (знаю, что такая схема доставки материальных объектов использовалась и о проблемах я не слышал, если она конечно в договорах прописана).
Я не списывался на тему цены с PVS, но почему Вы думаете, что у них второй вариант, и нет внутренних прайсов?
Кроме того, есть еще и вендорские скидки для конкретных клиентов о механизмах вычислений которых никто публично не расскажет (а их уровень может быть существенный и начальные цены в торгах могут уже быть частично со скидкой).
Тут Вы меня не поняли. Государство пишет ТЗ на свой заказ, а не на инструменты, с помощью которого заказ будет исполняться. А вот на эти нужные Вам инструменты ТЗ пишете уже Вы.
Бизнес-центр и место массовой регистрации это все же разные вещи.
P.S. Из параллельной приватной дискуссии с господином Jef239 я выяснил, что у них действительно есть обоснованные опасения для хорошей перестраховки, но я бы не стал распространять это мнение на весь остальной рынок, в том числе на ту его часть, где есть бюджетные деньги.
Ну те за вами реально косяк был, хотя и не совсем такой, который считали налоговики?
> Через тендеры. А если внимательно поискать, то увидим не только максимальную цену в 2.4 миллиона рублей, но и конечную цену тендера. С серверами — аналогично.
Только это индивидуальные цены для конкретного заказчика. Начальная максимальная цена контракта определяется по трем коммерческим предложениям, которые сюрприз сюрприз делаются по запросу заказчика, так как прайса нет.
И, я Вам больше скажу, по этим ценам данный софт/железо больше никто не купит. В следующий раз будут и другие начальные цены и другие конечные.
В связи с этим мой вопрос остается в силе — где общедоступные прайсы?
> А это уже означает проверку ФАС и уголовное дело за сговор.
Так сговор, как я понимаю, все же был?
А ФАС проверяет все тендеры, где нашлись недовольные «поставщики». И к счастью в моей практике пока еще ни один недовольный поставщик, которые не могли ни ТЗ соответствовать, ни ценой выиграть, ничего не получали.
> Вы сможете доказать прокуратуре, что при наличии бесплатного CppCheck надо платить за PVS-studio? Есть официальное государственные документы, что PVS-studio лучше? Именно официальные, а не просто мнения специалистов.
ТЗ кто пишет? Государство или Вы? Так при чем тут государственные документы?
Я не очень уверен, что это вообще придется доказывать.
> ну вот вам примеры уголовных дел,
И все они только купили софт?
> Теперь, надеюсь, понятно нежелание покупать по необъявленной цене у фирмы с уставным капиталов 10 тысяч рублей
А других на рынке нет.
> зарегистрированной в частной квартире?
Разве что это единственное, что можно в упрек поставить компании. Правда юр. адрес в квартире, куда лучше, чем в месте массовой регистрации ООО, где их никогда не было и концов не найти.
> В идеале — узнать официально, на фирменном бланке покупателей с реквизитами и печатями.
Вам такую информацию официально не даст никто.
Не официально, за пивом при разговоре старых друзей из разных компаний, может быть и скажут, но лет через пару после покупки…
> У нас много госконтрактов, соответственно может быть налоговая проверка. А покупка софта без прайса — с точки зрения налоговой, это откат. То есть с точки зрения налоговой мы не купили софт, а просто обналичили эти 25 миллионов.
А здесь Вы не просто заблуждаетесь, а нагло врете.
Если хотите опровергнуть, покажите мне актуальные прайсы, ну, хотя бы на ANSYS. Что, цена по запросу? Ой, а как же его бюджетные организации и госкомпании покупают? Или сразу после их налоговая за обналичку того, и в тюрьму?
Ну или давайте хотя бы сервера купим, раз на ANSYS прайсов нет. Что?! И тут цены по запросу?
Да ну его, вон в соседнем магазе счеты купим и пусть эти инженеры на них считают. Работали же как-то 50 лет назад без всего этого…
Первая — gcc 4.4.4 на некотором коде с некоторым набором параметров компилятора просто падал с core dump. Тогда оптимизация была просто понижена до -O0 (чтобы вообще не разбираться), благо не компилировался код вспомогательного приложения и разбираться, что не нравится компилятору особого смысла не было — и так все работало быстро.
Вторая проблема была с gcc 4.3.4. В приложении использовался Boost и его контейнеры из Boost.Container. Наиболее яркое и запомнившееся проявление проблемы было, когда был boost::container::vector с данными, если у него посмотреть size(), то там одно значение (неправильное или 0), если посчитать end()-begin() — другое значение (почти всегда правильное), если отладчиком посмотреть в структуру, где оно хранит данные, то в памяти значения всегда верные.
Ни в одной другой версии компилятора (новее) воспроизвести не удалось. В gcc 4.3.4 Нормально работало только с оптимизацией -O1. Я бы еще понял, если бы код был многопоточный, но код был однопоточным и по сути логически один и тот же код давал то правильные данные, то неправильные.
Если у Вас есть идея, как можно подебажить второй случай, то я с радостью ее выслушаю, так как мне было бы интересно попытаться докопаться до причины такого поведения компилятора.
А аргументация, базирующаяся на никнейме собеседника — это пожалуй даже оригинальная вещь. +1 Вам за изобретательность.
Резюмируя вышесказанное я вынужден процитировать господина mayorovp:
> Ваше мнение было очень ценным для нас. Только, кажется, вы забыли его аргументировать.
P.S. В тред призывается к.ф.-м.н. kbtsiberkin. Может быть он, как практикующий теорфизик, скажет по существу что-нибудь еще.
Вот именно в этой области фортран дико популярен и конкурирует с C&C++ нередко выигрывая у них.
А приведенные выше MatLab, Python, та же Mathematica — это чаще всего лишь инструменты прототипирования или текущих расчетов над небольшими моделями.
Справедливости ради MatLab поддерживает параллельные вычисления на суперкомпьютерах, но на практике я не видел чтобы это активно применялось, хотя раз поддерживает, то наверняка не просто так…
Или не используется, если некоторые алгоритмы можно преобразовать так, чтобы вместо перебора двух индексов перебирать один, проходя по всей матрице последовательно (фактически построчно).
В этом случае для векторизации выравнивание отдельных строк не требуется, так как конец одной строки и начало следующей можно обрабатывать в одной векторной инструкции. Да и для компилятора такой код векторизовать будет проще, чем перебор двух индексов.
Но там ссылка на письмо от 2005 года, те еще до вступления в силу новой 4 части ГК (которая сейчас действует), в комментариях это как фактор риска описывают.
Не видели ли Вы каких либо более новых разъяснений/комментариев на этот счет?
Вот к примеру у меня есть система, в которой при нагрузке более 60% latency начинает взлетать чуть ли не экспоненциально. К счастью в этой системе это не критично, но неприятно, так как в худшем случае ждать запуска задачи иногда приходится в несколько раз дольше, чем она будет выполняться (характер нагрузки — пакетный).
Недавно на хабре в комментариях видел пример, где система работала под нагрузкой процентов в 90, но там поток задач был равномерен, одинаков и известен, по этому задержки были приемлемыми и не взлетали в небеса.
Другая сторона медали — резервирование.
Если у Вас есть кластер из 2 нод, то загружать каждую более чем на 50% категорически нельзя, ибо в случае выхода из строя одной из них вторая умрет от перегрузки.
Если ноды 3, то предел загрузки каждой из них — 2/3, если мы хотим пережить отказ одной ноды без падения.
Третья сторона — рост системы. Новое оборудование прирастает обычно дискретно, а нагрузка может увеличится непредсказуемо и нужно держать оперативный резерв для прохождения пиков или просто роста аудитории.
И это далеко не все стороны, которые могут учитываться в реальной задаче и зависеть от загрузки оборудования.
Если сложить все это вместе, то вполне может оказаться, что в какой-то системе эти 30% загрузки — это и есть максимальная эффективность, при которой можно оказывать качественный сервис и еще одна доля процента экономии приведет к краху.
10BASE-T — это 10 Мбит/с.
Странно видеть такого гостя из мезозоя в современной СХД :)
А стандарт на 10Гбит/с по витой паре называется 10GBASE-T.