LINUX.ORG.RU

Избранные сообщения pol01

Java Многопоточность, Очереди

Форум — Development

Есть такой класс


**
 * A Combiner takes items from multiple input queues and feeds them into a
 * single output queue. Each input queue has a priority, which determines the
 * approximate frequency at which its items are added to the output queue. E.g.
 * if queue A has priority 9.5, and queue B has priority 0.5, then on average,
 * for every 100 items added to the output queue, 95 should come from queue A,
 * and 5 should come from queue B.
 * <p>
 * Input queues can be dynamically added and removed.
 * </p>
 */
public abstract class Combiner<T> {

    protected final SynchronousQueue<T> outputQueue;

    protected Combiner(SynchronousQueue<T> outputQueue) {
        this.outputQueue = outputQueue;
    }

    /**
     * Adds the given queue to this com.tech.task.Combiner.
     *
     * @param queue          the input queue to add to this com.tech.task.Combiner
     * @param priority       the priority to assign to the input queue
     * @param isEmptyTimeout if the input queue is seen as empty for a duration
     *                       longer than isEmptyTimeout, then it is removed from the com.tech.task.Combiner
     * @param timeUnit       the time unit of the isEmptyTimeout argument
     */
    public abstract void addInputQueue(BlockingQueue<T> queue, double priority,
                                       long isEmptyTimeout, TimeUnit timeUnit) throws CombinerException;

    /**
     * Removes the given queue from this com.tech.task.Combiner.
     *
     * @param queue the input queue to remove from this com.tech.task.Combiner
     */
    public abstract void removeInputQueue(BlockingQueue<T> queue) throws CombinerException;

    /**
     * Returns true if the given queue is currently an input queue to this com.tech.task.Combiner.
     */
    public abstract boolean hasInputQueue(BlockingQueue<T> queue);

    /**
     * Thrown to indicate a com.tech.task.Combiner specific exception.
     */
    public static class CombinerException extends Exception {
        public CombinerException() {
            super();
        }

        public CombinerException(String message) {
            super(message);
        }
    }
}

К нему нужно сделать реализацию. Есть идеи ?

 ,

lestal
()

Параллелизация питона

Форум — Development

Вопрос касается ленивого скрещивания python и mpi
Вот есть у нас библиотека scikit-learn, в которой куча функций может выполняться параллельно из коробки при помощи joblib. гаjoblib реализует параллелизацию при помощи multiprocessing. Вот тут (http://stackoverflow.com/questions/25772289/python-multiprocessing-within-mpi) герой написал параллельную программку при помощи multiprocessing и раскидал её по разным узлам кластера, общающимся с помощью mpi, при помощи mpirun. Можно ли так же при помощи mpirun раскидывать по разным нодам кластера job-ы, которые запускает sklearn с помощью joblib ?

 ,

LIKAN
()

Альтернатива buffer-list-update-hook?

Форум — Development

Сначала emacs --daemon, далее emacsclient -t anyfile.txt и emacsclient -nc anyfile.txt.

Нужен некий триггер который бы срабатывал когда находясь в Gui, я тыкал мышкой в терминал с открытым емакс'ом (обратное действие тоже должно работать). Если с gui'ем проще, можно использовать например mouse-active-buffer то с терминалом сложнее так как емакс ожидает какого то действия, мышь не понимает. Пробовал оборачивать всякие switch-to-buffer-*, active-buffer, эффект не тот... Сейчас остановился на buffer-list-update-hook, но дергается он довольно часто. Существует ли более «экономичное/специализированное» решение: hook или функция на которую можно повесить advice?

p.s. Нужно для корректного отображения файла в треминале и gui, т.е. при переключении убрать меню, выключить лигатуры, скорректировать отображение некоторых плагинов.

 

clinic
()

Автодополнение в буфере IPython

Форум — Desktop

Всем привет!

Настраиваю emacs для программирования на python.

Настроил автодополнение через company-mode, в качестве бекэнда использую jedi. Вот настройки:

(require 'company)
(add-hook 'after-init-hook 'global-company-mode)

(setq company-minimum-prefix-length 0)
(setq company-idle-delay 0)
(setq company-echo-delay 0)

(defun my/python-mode-hook ()
(add-to-list 'company-backends 'company-jedi))
(add-hook 'python-mode-hook 'my/python-mode-hook)

(setq jedi:complete-on-dot t)
(setq jedi:use-shortcuts t)

Вопросы такие:

1. Для программирования на python нужно какие-то дополнительные бекэнды для company настраивать? Поделитесь своим must have списком бекэндов для company.

2. Почему когда я пытаюсь выполнить автодополнение в буфере с запущенным IPython в этом буфере company отключается (хотя до попытки автодополнения company-mode активен) и появляется буфер *Python Completions*. Это так и должно быть или я что-то не правильно настроил?

3. Можно сделать так, чтобы автодополнение в буфере *IPython* показывалось в выпадающем окошке (pop up menu) как при редактировании кода?

 

pol01
()